我有一些来自
形式的程序的输出foo
10000
bar
20
baz
30
qux
50
...
需要转换此输出,以便不包含0到100之间的数字的行以#
为前缀(仅通过管道):
#foo
#10000
#bar
20
#baz
30
#qux
50
...
如何使用标准Linux工具之一(优选sed)实现这一目标?
答案 0 :(得分:2)
此awk
应该:
awk '$0>99 {$0="#"$0}1'
#foo
#10000
#bar
20
#baz
30
#qux
50
与pipe
command | awk '$0>99 {$0="#"$0}1'
它会在大于#
100
答案 1 :(得分:2)
使用GNU sed
如果0..100是独占的(因此100
不应该预先渲染):
sed '/^[0-9]\{1,2\}$/! s/^/#/' INPUTFILE
更新:如果输入也可以包含小数,则可能需要使用此版本:
sed '/^[0-9]\{1,2\}\(\.[0-9]\+\)\?$/! s/^/#/' INPUTFILE