我在 Linux 伺服器 CentOS 7 上有一個文字文件,其中包含許多以下格式的條目:
1234567890123456, 1, 17, cde, Test Test
1234567890123456, 2, 17, cde, Test Test
1234567890123456, 3, 17, cde, Test Test
1234567890123456, 4, 17, cde, Test Test
1234567890123456, 5, 17, cde, Test Test
1234567890123456, 1, 18, cde, Test Test
1234567890123456, 1, 17, cde, Test Test
我應該使用哪個命令來刪除
1, 17
2, 17
3, 17
4, 17
所以結果應該是
1234567890123456, 5, 17, cde, Test Test
1234567890123456, 1, 18, cde, Test Test
答案1
awk方法:
awk -F, '!($2<5 && $3==17)' file
輸出:
1234567890123456, 5, 17, cde, Test Test
1234567890123456, 1, 18, cde, Test Test
-F,
- 欄位分隔符$2
,$3
- 分別代表第2場和第3場
答案2
若要排除這些精確值,請利用 field-3 排除始終為「17」的共通性:
awk -F, '!($3 == 17 && ($2 == 1 || $2 == 2 || $2 == 3 || $2 == 4))' < input > output