我需要打破 'AAA BBB' 變成KSH和AT&T的sed,打破匹配圖案
aaa
bbb
在一行代碼行。 在gnused,我可以:
print 'aaa bbb' | sed 's/ /\n/g'
在bash,我可以:
echo 'aaa bbb' | sed 's/ '"/`echo \\\n`/"
但在KSH/zsh中,與&牛逼SED在AIX,沒有這個工程:
print 'aaa bbb' | sed "s/ /`echo -e \\\n`/"
print 'aaa bbb' | sed 's/ '"/`echo \\\n`/"
print 'aaa bbb' | sed "s/ /`echo \\\n`/"
在sed中有任何解決方法,在一行中?
嗯,如果我需要像'aaa bbb ccc ddd ...'這樣的長線做什麼怎麼辦? – MeaCulpa 2012-04-26 05:06:46
如果你使用'ksh'並使用shell變量,你實際上可以完全避免'sed':'$ {line#*}'是第一個空格後面的東西,'$ {line%*}'是第一個空格之前的東西。將'#'或'%'加倍以使用* last *空格。 – geekosaur 2012-04-26 05:08:16
@MeaCulpa,見編輯答案。或者,你可能會更快樂,而不是尋找;這遠不是我寫的最邪惡的「sed」,但是超越大多數人的邪惡觀念並不需要太多。 – geekosaur 2012-04-26 05:29:14