我有一个文本文件,与这个非常相似:
JACK BLACK 123456 -1245368 -
BRIDGET RED 1245 548425 +
JOHNNY HOMUSS 55482 -4325 -
我想使用sed
命令将最后一个数字部分的字符替换-
为空白' '
字符,我的输出如下:
JACK BLACK 123456 1245368 -
BRIDGET RED 1245 548425 +
JOHNNY HOMUSS 55482 4325 -
我正在使用这个,但当然不起作用,因为它替换了-
文本文件中的所有字符:
sed -e 's/-/ /g' old.out > new.out
那可能吗?
答案1
如果您的数据格式非常相似,即只有包含数字的最后一列可能包含-
,那么您可以简单地g
从sed
表达式中删除:
sed 's/-/ /g' old.out > new.out
如果您想要-
从文件中删除所有数字,您可以检查后面是否-
跟着一个数字:
sed 's/-\([0-9]\)/ \1/' old.out > new.out
如果你想-
从最后一列中删除包含数字,你可以说:
sed 's/-\([0-9]\{1,\}\)\([^0-9]*\)$/ \1\2/' old.out > new.out