• 締切済み

bashスクリプトでの文字列から特定文字列の位置特定

bashスクリプトで 文字列から特定の文字の位置を取得する場合 expr index 文字列 特定したい文字 のように書きますが、aaa_atestという文字列から "atest"という文字列の開始位置を取得する ことはできません 何か方法はないのでしょうか

みんなの回答

  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.2

失礼。開始位置ということなんで、先頭を1とすると、 expr length \( aaa_atest : '\(.*\)atest' \) + 1 ですね。まあ#1も先頭を0とすると正解ということにしておいてください。

  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.1

expr とは渋いところをお使いですね。 expr length \( aaa_atest : '\(.*\)atest' \)

関連するQ&A

  • 複数bashスクリプトの定数?の共通化

    たとえば以下のように A.bash、B.bash、C.bash の3つのbashスクリプトがあるときに それぞれの先頭で export OutFile=/aaa/bbb/ccc.txt と設定していたとします このとき、 何らかの事情で以下のよう export OutFile=/aaa/ggg/ccc.txt 変えなければならなくなった時に、 じか書きしている場合3ファイルとも 編集しなくてはいけません そうではなくて A.bash、B.bash、C.bashの3スクリプトの先頭で 設定ファイルを読み込んで export OutFile=/aaa/bbb/ccc.txt を取得するようにし、以下のように変更が発生した 場合も、 export OutFile=/aaa/ggg/ccc.txt 設定ファイルひとつだけ編集すればいいように したいのですが、そのようなことはできるのでしょうか? 説明べたでわかりにくいかも知れませんがお願いします。

  • 文字列から特定の文字を抜き出す

    こんにちは。 シェルスクリプトで文字列から特定の文字を抜き出し、 変数に入れたいのですが、うまくいきません。 申し訳ありませんが、アドバイスをお願いいたします。 文字列 $moji=aaa_bbb_ccc (文字は変動します) $a=aaa $b=bbb $c=ccc と"_"毎に変数に代入したい。 echo $moji | awk -F_ '{print $2}' で文字を標準出力に取り出すことはできるのですが、 そこから変数に代入する方法がいまいち分かりません。

  • 【AIX】Kornシェルの文字列操作

    AIXのKShellで、変数に格納された文字列の 一部を取り出したいのですが、どのようにプログラム を書けばよろしいのでしょうか・・・? 調べましたら、Bashなら expr 'substr 文字列 文字位置 文字列長' でいけますよね・・? 調べてはおりますが、Kshellならどのようにして文字列の一部を取り出すのかわからず困っております。 よろしくお願いいたします。

  • UWSCの文字列操作

    UWSCの文字列操作について質問です。 あるテキスト中から特定の文字に囲まれた文字列を抜き出したいのですが、やり方が見つからずに困っています。 たとえば下記の文字列がある場合に "抜き出したい文字列" たとえば「抜き」と「列」に囲まれた部分を切り出したいんです。 この例だと、処理結果が「出したい文字」となるような流れです。 開始位置からの文字数によって切り出す方法はわかったのですが、特定の文字列の開始位置から、特定の文字列の位置までの切り出しがどうしてもわかりませんでした。 誰かわかる方がいましたら助けてください。 よろしくお願いします。

  • EXCELで文字列の特定の文字の位置を知る方法

    EXCELで文字列の特定の文字の位置を知る方法 EXCELでセル中の文字列、例えば、"abc 4/3 5/5 6/4" の最後の"/"の位置を知る方法を関数の組み合わせで出来ますか? 教えてください。"/"の数は任意で最後の"/"の位置を知りたいのですが??? どうかよろしくお願いします。VBAでなく関数の組み合わせでお願いします。

  • ファイルの特定の位置への文字列の追加

    FilWriter fw = new FileWriter(file , true); BufferedWriter bw = new BufferedWriter(fw); bw.write("AAA"); bw.newLine(); 例えばこんなかんじで書いた場合、変数fileが参照するFileクラスのオブジェクトが表現するファイルの文末に AAA という文字列が追加されると思うのですが、 この文字列をファイルの中のある特定の位置に挿入するといった場合 どのような処理が可能でしょうか? RandamAccessFileクラスを使って、 正規表現で位置を確認して、 バイト単位で場所を指定して、 挿入する。 とかしか方法は無いのでしょうか? 何かアドバイスありましたらよろしくお願いいたします。

  • 特定文字列で囲まれた範囲を抜き書きするためには?

    特定の文字列で開始され、特定の文字列で終了するテキストの一部を抜き出すためには、コマンドラインからは perl -ne 'print if /開始文字列/ .. /終了文字列/' file.txt でできると思うのですが、これがたとえば $page 変数に入ったテキストで同様の処理を Perl 内部のスクリプトで行う時にはどうすればいいのでしょうか? while(<$page>){ ... } とかやって1行1行処理してみようと思ったのだけど、できません。

    • ベストアンサー
    • Perl
  • シェルスクリプトで読み込んだ文字列の区切り文字以降の文字列を取得したい

    ちょっと説明が難しいのですが aaa = bbb こういう文字列の右側のbbbを取り出したいのですが可能ですか? 全てこのようなら問題ないのですが、前後のスペースに問題があります _aaa = bbb や aaa=bbb aaa =__bbb アンダーバーはスペースのかわりです。 のように前後にスペースが1つ2つ入っていたり抜けていたりします。 aaa = bbb だったら i=`echo | sed 's/aaa\ =\ //'` のようにして取得できていますが、その他の処理がうまくできません そもそもシェルスクリプトでこのような処理は無理なのでしょうか? perl ではできたのですができればシェルスクリプトで完結させたいのです。 よろしくお願いします。 使っているシェルはzshです。

  • 特定の文字列を抜き出す。

    javaでrdfファイルへのURLを抜き出そうと思っています。 具体的にはhttp:からindex.rdfという文字列を 抜き出したいのですが、 String型のlineという変数に a.(http:*************index.rdf)だけ含まれている文字列と b(http:*********foaf.rdf ***************** http:***************index.rdf) のような含まれ方をしている文字列があります。 aの場合はsubstringメソッドを使って httpの現れる場所からindex.rdfが現れる場所をindexOfメソッドで求めて抜き出せばよいのですが、 bの場合最初のhttpから最後のindex.rdfまで読み出されます。 index.rdfのついたhttpから文字列を抜き出す方法は ないでしょうか?お願いします。

    • ベストアンサー
    • Java
  • 画面から文字列を取得してその文字列の位置を知る方法

    こんばんは。 質問させてください。 画面から文字列を選択して、取得します。(これは出来ました。) その文字列がHTMLソースファイルの どの位置のものか取得する方法はありますでしょうか? ○番目の「こんばんは」を画面から取得した時に 同じ文字列があっても、○番目の位置が取得出来る方法なのですが・・・ ---- <HTML><HEAD></HEAD> <BODY> おはよう、こんばんは。 さようなら、ありがとう。 しつれいしました、おはよう、こんばんは。 こんばんは、さようなら。 さようなら </BODY> </HTML> ----

専門家に質問してみよう