列に文字列を含む列番号

列に文字列を含む列番号

この質問に関して、 文字列に一致する列の列番号

特定の文字列を含む列番号を取得したいです。

彼らはその下で働かなかった。

string=Bo*
echo 'Hi Boo Jiggy' | awk -v b="$string" '{for (i=1;i<=NF;i++) { if ($i == b) { print i } }}'

...でもない

string=*oo
echo 'Hi Boo Jiggy' | awk -v b="$string" '{for (i=1;i<=NF;i++) { if ($i == b) { print i } }}'

どんな提案がありますか?よろしくお願いします!

ベストアンサー1

~代わりに正規表現のような一致のために==

 string=Bo*
 echo 'Hi Boo Jiggy' |
 awk -v b="$string" '{for (i=1;i<=NF;i++) { if ($i ~ b) { print i } }}'

出力

2

コメントで述べたように、*oo正規表現として定義されていません(シェル拡張には有効ですが)。

上記のコードを再利用するには、文字列をドットで初期化する必要があります。

string=.*oo

おすすめ記事