1

非常に大きなタブ区切りのファイルがあり、特定の列に「TelePacific」という単語が表示されるすべての行を削除する必要があります。この場合、TelePacifc が発生するすべての行が 4 列目に表示されます。入力ファイルの例を次に示します。

7/18/13 10:06   0:00:09 TelePacific random person DEREK         9256408665  random company
7/18/13 10:07   0:00:21 TelePacific random person DEREK         9256408665  random company
7/18/13 10:10   0:19:21 TelePacific random person DEREK         9256408665  random company
7/18/13 10:39   0:01:07 random person       107  
7/18/13 11:02   0:01:41 random person Gilbert       107 TelePacific
7/18/13 12:17   0:00:42 random person Gilbert       107 TelePacific
7/18/13 13:35   0:00:41 random person Gilbert       107 TelePacific
7/18/13 13:44   0:12:30 TelePacific ADKNOWLEDGE     8169311771  random company
7/18/13 14:46   0:19:48 TelePacific TOLL FREE CALL  8772933939  random company
7/15/13 10:09   0:01:27 random person Esquivel      272 TelePacific
7/15/13 10:16   0:00:55 random person Esquivel      272 TelePacific
7/15/13 10:59   0:00:51 random person Esquivel      272 TelePacific
7/15/13 11:01   0:01:09 random person Esquivel      272 TelePacific
4

5 に答える 5

5

使用grep -v:

grep -v "\bTelePacific\b" file > output && mv output file

または awk を使用:

awk '$4 != "TelePacific"' file > output && mv output file
于 2013-07-24T19:23:28.367 に答える
1

これでうまくいくはずです:

$ sed '/TelePacific/d' file

出力に満足したら-i、変更をファイルに保存するオプションを使用します。

$ sed -i '/TelePacific/d' file

編集:

TelePacific4 列目の結果のみを返すには:

$ awk '$4=="TelePacific"' file

またはその逆:

$ awk '$4!="TelePacific"' file
于 2013-07-24T19:22:38.173 に答える
1

fgrep -vこれを行います。

fgrepは、パターン内の特殊文字を正規表現制御文字として解釈することと同等でgrep -Fあり、解釈しないようにします。grepこの-vパラメーターは、一致する行を出力する (これがデフォルトです) のとは対照的に、パターンに一致しないfgrepすべての行を出力します。

fgrep -v TelePacific inputfile.tsv > outputfile.tsv

上記のanubhavaのように、grep -v "\bTelePacific\b"誤って "TelePacificFoo" または "FooTelePacific" と一致しないようにすることもできます。

于 2013-07-24T19:23:25.390 に答える
0

ここにsedによる解決策があります

#!/bin/bash

sed '/TelePacific/d' your_file.txt > file_without_telepacific.txt
于 2013-07-24T19:22:11.393 に答える
0

これを試して:

grep -v TelePacific in-file > out-file

この-vオプションは検索を反転するため、grep は検索パターンに一致しないすべての行を出力します。

in-fileとが同じ場合、これは機能しませんout-file。これを実現するには、次のような一時ファイルを使用する必要があります。

grep -v TelePacific in-file > in-file.tmp && mv in-file.tmp in-file
于 2013-07-24T19:23:31.603 に答える