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
awk
文字列を部分文字列として含まない列1、3、または4の行を抽出するために使用されます。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
3つの列のそれぞれに一致し、それらのいずれかと一致しない場合は元の行を出力します。
答え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