我有一个文件,除了其他数据外还包含以下几百行
(abc-wxyz1/2222 1234)
1234是一个随机数,对于所有100行是不同的。我想用
替换所有行(abc-wxyz1/2222 *)
我正在使用以下代码
cat input.txt | \
sed -i -e 's/\(abc\-wxyz1\/2222\ [0-9]\+\)/\(abc\-wxyz1\/2222\ \*\)/g' > output.txt
我得到output.txt空白我不知道为什么。我这样做了吗?
答案 0 :(得分:1)
对于您展示的输入样本,您可以使用awk
:
awk '{print $1 " *)"}' input.txt
答案 1 :(得分:0)
如果您要使用标记-i, --in place
,则不必重定向输出。正如预期的那样,替换就地执行。
然而,你可以简化你的表达,做:
sed -i -e 's/abc\-wxyz1\/2222\ \([0-9]\+\)/*/g' input.txt
答案 2 :(得分:0)
使用此命令查看过滤器的结果:
cat input.txt | sed 's/\(abc\-wxyz1\/2222\ [0-9]\+\)/\(abc\-wxyz1\/2222\ \*\)/g'
尝试使用较短的图案来破坏它所在的位置。
如果您要运行其他命令,则只需要'-e'标志。你也可以这样做:
sed 'command;command2;{command3}'