删除包含一个或多个大写字母的单词

时间:2014-03-28 19:12:56

标签: sed

嗨,我正在学习sed,我想解决我的一个练习。它说我需要删除包含一个或多个大写字母的行中的任何单词。

示例输入:

Hi im NEW here need help NOw

输出:

im here need help

3 个答案:

答案 0 :(得分:1)

这是一种方式:

echo Hi im NEW here need help NOw | xargs -n1 | sed '/[A-Z]/d' | xargs
im here need help

答案 1 :(得分:1)

以下是sed中的一种方式:

$ echo "Hi im NEW here need help NOw" | sed -r ':a;s/[a-z]*[A-Z]+[a-z]* *//;ta'
im here need help 

答案 2 :(得分:0)

这应该做:

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

这个测试一个和一个字段。打印所有字段不包含任何大写字母。