我在 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