3

この awk コマンドに単語境界を追加したい:

awk '{$0=tolower($0)};/wordA/&&/wordB/ { print FILENAME ":" $0; }' myfile.txt

and\yの左右に追加しようとしましたが、テストでは機能しませんでした。 私はこれを試しました:wordAwordB
/\ywordA\y/&&/\ywordB\y/

皆さんありがとう!

(ps: 私は awk を初めて使用するので、match() 関数を回避しようとしていました。)

4

3 に答える 3

4

awk の代わりに gawk を使用したい場合:

gawk '{$0=tolower($0)};/\ywordA\y/&&/\ywordB\y/ { print FILENAME ":" $0; }' myfile.txt

システムに gawk がある場合 (Mac OS X など) は、必要なことを実行します。\y は awk の GNU 拡張です。

于 2012-03-13T00:59:45.177 に答える
0

これはMac OS Xでうまくいくかもしれません:

awk '{$0=tolower($0)};/[[:<:]]wordA[[:>:]]/&&/[[:<:]]wordB[[:>:]]/ { print FILENAME ":" $0; }' myfile.txt

ただし、Linux では動作しないため、GNU awk をインストールするのが最善です。

于 2012-03-13T01:55:39.167 に答える