嗨,我正在学习sed,我想解决我的一个练习。它说我需要删除包含一个或多个大写字母的行中的任何单词。删除包含一个或多个大写字母的单词
示例输入:
Hi im NEW here need help NOw
输出:
im here need help
嗨,我正在学习sed,我想解决我的一个练习。它说我需要删除包含一个或多个大写字母的行中的任何单词。删除包含一个或多个大写字母的单词
示例输入:
Hi im NEW here need help NOw
输出:
im here need help
这里有一个办法:
echo Hi im NEW here need help NOw | xargs -n1 | sed '/[A-Z]/d' | xargs
im here need help
+1哈哈 - 辉煌! =无论如何,这不是一个纯粹的sed ...但真的很好:) – jm666
谢谢你的答案 – user3473968
这应该做:
echo "Hi im NEW here need help NOw" | awk '{for (i=1;i<=NF;i++) if ($i!~/[[:upper:]]/) printf "%s ",$i;print""}'
im here need help
此测试一个和一个字段。打印所有字段不包含任何大写字母。
问题在于提问的问题写在sed – user3473968
@ user3473968 Mark的回应不仅是'sed'。不是所有的东西都可以通过'sed'或者单个命令轻松解决。 – Jotne
这里是一个办法做到这一点在sed
:
$ echo "Hi im NEW here need help NOw" | sed -r ':a;s/[a-z]*[A-Z]+[a-z]* *//;ta'
im here need help
+1纯sed解决方案;也适用于包含'''字符的标记。 – mklement0
谢谢@ mklement0。不是我喜欢的首选工具,但我喜欢它有时提供的挑战。 ':)'。 –
它很好用。 – user3473968
什么是你的工作这么远? – Selcuk
我知道如何删除只包含所有大写字母的单词,但不是这样的...... – user3473968
向我们展示您的代码,了解如何删除具有所有大写字母的单词,并使我们可以从此处获得帮助。 – Adam