我有以下逗号分隔的数据(为了视觉清晰而使用空格):
1 2014 23 2352 19.24 7.18
1 2014 23 2353 19.78 4.65
24 2014 23 2354 20.26 25.34
1 2014 23 2355 26.65 42.76
1 2014 23 2356 27.34 56.356
1 2014 23 2357 29.24 45.4
24 2014 23 2358 30.23 345.27
1 2014 23 2359 23.23 345.21
1 2014 24 0000 12.53 1.98
1 2014 24 0001 7.24 12.3
24 2014 24 0002 15.68 90.8
我只想删除以 24 开头的每一行(或者保留以 1 开头的每一行,无论哪种方式)。
所以期望的输出是:
1 2014 23 2352 19.24 7.18
1 2014 23 2353 19.78 4.65
1 2014 23 2355 26.65 42.76
1 2014 23 2356 27.34 56.356
1 2014 23 2357 29.24 45.4
1 2014 23 2359 23.23 345.21
1 2014 24 0000 12.53 1.98
1 2014 24 0001 7.24 12.3
我努力了
sed '/24/d' (filename)
但这会删除整个文件中 24 的每个实例,如下所示(不需要!):
1 2014 23 2353 19.78 4.65
1 2014 23 2355 26.65 42.76
1 2014 23 2356 27.34 56.356
1 2014 23 2359 23.23 345.21
答案1
With awk
(在行1
首打印所有内容):
awk '/^1/{print $0}'
使用sed
(-n
禁止打印所有内容的选项):
sed -n '/^1/p'
使用grep
(也许不是文本处理的最佳选择,但在这种情况下已经足够好了):
grep '^1'
答案2
grep -v ^24
只保留不以 24 开头的行