2

Nthフィールドに文字列が含まれている場合、タブ区切りファイルからすべての行を除外するための簡単なワンライナーをbashで実行する最良の方法は何sですか? 例:

$ cat myfile 
A  B_crop  C
A  X_mock  D

$ cat myfile | filter -V -c 2 -s "crop"
A  X_mock  D

構成されたコマンドfilterは、列番号 (1 から始まる)-cと文字列を取り、-s指定された列に文字列を含む行のみを保持します。-Vのように渡された場合grep、文字列がその列番号の部分文字列ではない行を除外します。ありがとう。

4

1 に答える 1

3

列に基づいて除外する必要があるため、次を使用しますawk

awk '$2 == "crop" { print $0 }' myfile

$2、列 2 を使用して比較すると述べています。-V機能を実装するには、!=ではなくを使用します==

正規表現チェックを使用して部分文字列をチェックすることもできます。

awk '$2 ~ /crop/ { print $0 }' myfile

正規表現マッチングは、 で否定することもできます!~

于 2013-03-03T21:10:20.167 に答える