删除包含数字的单词
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' ' '
- 用换行符替换 spaces。
- 删除所有包含数字的行(以前的单词)。
- 再次用 space 替换换行符。
这仅在您只有在线过滤时才有效。
你可以在这里使用sed
:
$ sed 's/\w*[0-9]\w*\s*//g' infile
asdkbasdnas jksndkasnd jkasdsa
在作业的 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' ' '
- 用换行符替换 spaces。
- 删除所有包含数字的行(以前的单词)。
- 再次用 space 替换换行符。
这仅在您只有在线过滤时才有效。
你可以在这里使用sed
:
$ sed 's/\w*[0-9]\w*\s*//g' infile
asdkbasdnas jksndkasnd jkasdsa