5

我正在尝试浏览一个文件,并删除每行中的最后一个单词。目前,我正在使用命令

sed 's/^*\n//' old.txt > new.txt

但结果表明 old.txt 与 new.txt 相同。感谢您的帮助,如果我能澄清这个问题,请告诉我。另外,为了定义“单词”,我只是使用空格。

4

2 回答 2

10

试试下面的。\w*匹配文件中的最后一个单词$并将搜索锚定到行尾。

sed s/'\w*$'// old.txt > new.txt

old.txt 以 new.txt 出现的原因可能是因为您的正则表达式^*\n与 old.txt 中的任何行都不匹配。

于 2012-04-18T23:15:36.053 回答
1

以下是内联编辑。在运行任何东西之前,请备份您的文件。

sed -i 's/[[:alnum:]]*$//' /yourfile

如果您正在使用 OS X,您可能需要尝试以下操作

sed -i '' 's/[[:alnum:]]*$//' /yourfile

如果您对直接写回原始文件不感兴趣,但希望打印输出。

sed 's/[[:alnum:]]*$//' /yourfile
于 2012-04-19T00:57:04.363 回答