sed 或 tr 单行删除所有数字

sed 或 tr 单行删除所有数字

所以,我有这个文本文件,它主要由字母数字字符组成。这是一份标准文件。但由于我是从 PDF 复制并粘贴的,所以里面有页码。我不太关心偶尔出现的不是页面的数字,所以我想我会用sed或将它们全部清除tr。毕竟,只是比在 GUI 中查找并替换第一个零、然后一个、然后两个等等快一点。

那么我该怎么做呢?

答案1

要删除所有数字,有以下几种可能性:

tr -d 0-9 <old.txt >new.txt
tr -d '[:digit:]' <old.txt >new.txt
sed -e 's/[0-9]//g' <old.txt >new.txt

如果您只想删除页码,您可能可以使用更好的正则表达式来识别页码的那些数字。例如,如果除空格外页码始终单独位于一行上,则以下命令将仅删除仅包含由空格包围的数字的行:

sed -e '/^ *[0-9]\+ *$/d' <old.txt >new.txt

\+是 GNU 扩展;对于某些sed实现,您可能需要更长的标准替代方案:\{1,\}或使用[0-9][0-9]*)。

不过,您不需要为此使用命令行。任何中等水平的编辑器都具有正则表达式搜索和替换功能。

答案2

我相信您正在寻找的是:

tr -d 0-9

相关内容