bash - 根据列中的特定单词删除特定行

标签 bash csv

我有非常大的制表符分隔文件,我需要删除特定列中出现“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

最佳答案

使用 grep -v:

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

或者使用 awk:

awk '$4 != "TelePacific"' file > output && mv output file

关于bash - 根据列中的特定单词删除特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17842903/

相关文章:

json - 使用 jq 将输出转换为 JSON

vim - 为什么 vim 在打开文件后将第一个字母更改为 g

excel - 如何从weka打开excel文件

javascript - 将文本区域的内容保存为带有 .csv 扩展名的纯 txt 文件

java - 将 SHA-512 哈希从 Java 转换为 Bash

linux - 如何获取当前文件夹名称并从 bash 名称中删除字符

JavaScript CSV 解析器库

csv - 在 Weka 中导入 csv 时的值数量错误

iphone - 在iPhone上将CSV文件读入sqlite3

linux - 复制 stdin 以检查结尾