删除包含数字的单词

deleting words containing number(s)

在作业的 sed 部分,我遇到了正则表达式(在 Ubuntu 上)的困难,它删除了包含一个或多个数字的每个单词。

这是我目前得到的表达式: 回声sed /\w.*[0-9]+.*\w/g text > text

样本:

asdkbasdnas jasndasn7bkjns 789 jksndkasnd 092 jkasdsa

期望的输出是:

asdkbasdnas jksndkasnd jkasdsa

sed 仅删除包含正则表达式的整行。您不能使用 sed 删除一行中的一个词。这是一个可能的解决方法:

tr ' ' '\n' | sed '/[0-9]/d' | tr '\n' ' '
  1. 用换行符替换 spaces。
  2. 删除所有包含数字的行(以前的单词)。
  3. 再次用 space 替换换行符。

这仅在您只有在线过滤时才有效。

你可以在这里使用sed

$ sed 's/\w*[0-9]\w*\s*//g' infile
asdkbasdnas jksndkasnd jkasdsa