请修改我的脚本,因为我想在 File.csv 的第 1,3 和 4 列中搜索单词“dBm”并返回所有不匹配的行/记录,因为需要在文件中删除“dBm”。
cat File.csv | grep -v dBm | sort -u -t '|' -k 1,1 -k 3,4 > Result.csv
Sample File.csv
RefNum|Date|Info|LTC|ICD|MLBB
ABC123|010119|19 dBm||Milk|MII9
DEF456|010119|21|-5 dBm|Choco|KK20
GHI789|010219|||C2|AA30
JKL111|010219|54|17||SK10
Sample Result.csv
RefNum|Date|Info|LTC|ICD|MLBB
GHI789|010219|||C2|AA30
JKL111|010219|54|17||SK10
急需你的帮助!干杯。
答案1
用于提取第 1、3 或 4 列中awk
不包含该字符串作为子字符串的行:dBm
awk -F '|' '!($1 ~ /dBm/ || $3 ~ /dBm/ || $4 ~ /dBm/)' file
给定你的第一条数据,这将输出
RefNum|Date|Info|LTC|ICD|MLBB
GHI789|010219|||C2|AA30
JKL111|010219|54|17||SK10
该awk
程序dBm
与三列中的每一列进行匹配,如果没有与其中任何一列匹配,则输出原始行。
答案2
$ awk -F'|' '($1 FS $3 FS $4) !~ /dBm/' file
RefNum|Date|Info|LTC|ICD|MLBB
GHI789|010219|||C2|AA30
JKL111|010219|54|17||SK10