有誰知道我怎麼才能最好在此聲明合併兩個sed
命令:合併2個正則表達式 - 得到一個連字符的字符串的第一個字符
$ echo "Apple-Boy-Cat" | sed 's/\B.//g;' | sed 's/-//g'
ABC
以上工作正常,但我有一種揮之不去的感覺,我忘記了一些可以避免我運行兩個單獨的sed語句的東西。
我曾試圖做sed 's/\B.//g;y/-//'
但我得到一個未終止的y
命令的錯誤。
有誰知道我怎麼才能最好在此聲明合併兩個sed
命令:合併2個正則表達式 - 得到一個連字符的字符串的第一個字符
$ echo "Apple-Boy-Cat" | sed 's/\B.//g;' | sed 's/-//g'
ABC
以上工作正常,但我有一種揮之不去的感覺,我忘記了一些可以避免我運行兩個單獨的sed語句的東西。
我曾試圖做sed 's/\B.//g;y/-//'
但我得到一個未終止的y
命令的錯誤。
您可以使用正則表達式替換運算符\|
。
$ echo "Apple-Boy-Cat" | sed 's/\B.\|-//g'
ABC
注意\B
兩個字字符或兩個非單詞字符之間的匹配。它與\b
(,其在字詞字符與非字詞字符之間匹配)相反。
這不是sed
,而是展示瞭如何使用awk
得到相同的結果:
echo "Apple-Boy-Cat" | awk -F- '{for (i=1;i<=NF;i++) printf substr($i,1,1);print ""}'
ABC
它通過-
分割字符串,然後打印每個單詞的第一個字母。
試試'sed's/\ B。// g; s/- // g'file' –