2014-03-28 97 views
-1

嗨,我正在學習sed,我想解決我的一個練習。它說我需要刪除包含一個或多個大寫字母的行中的任何單詞。刪除包含一個或多個大寫字母的單詞

示例輸入:

Hi im NEW here need help NOw 

輸出:

im here need help 
+0

什麼是你的工作這麼遠? – Selcuk

+0

我知道如何刪除只包含所有大寫字母的單詞,但不是這樣的...... – user3473968

+0

向我們展示您的代碼,瞭解如何刪除具有所有大寫字母的單詞,並使我們可以從此處獲得幫助。 – Adam

回答

1

這裏有一個辦法:

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

+1哈哈 - 輝煌! =無論如何,這不是一個純粹的sed ...但真的很好:) – jm666

+0

謝謝你的答案 – user3473968

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 

此測試一個和一個字段。打印所有字段不包含任何大寫字母。

+1

問題在於提問的問題寫在sed – user3473968

+0

@ user3473968 Mark的迴應不僅是'sed'。不是所有的東西都可以通過'sed'或者單個命令輕鬆解決。 – Jotne

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 
+1

+1純sed解決方案;也適用於包含'''字符的標記。 – mklement0

+0

謝謝@ mklement0。不是我喜歡的首選工具,但我喜歡它有時提供的挑戰。 ':)'。 –

+1

它很好用。 – user3473968

相關問題