2012-06-22 45 views

回答

4

你必須有sed的舊版本,那麼你需要把文字LF炭灰在substition,即

/usr/bin/sed 's/,/ 
/g' comma-delimited.txt > newline-separated.txt 

你甚至可能需要逃脫LF,所以一定要確保沒有白空格字符後最後字符'\'

/usr/bin/sed 's/,/\ 
/g' comma-delimited.txt > newline-separated.txt 

我希望這可以幫助。

+0

第二個示例適用於AIX 6.1。我們在UNIX上遇到的唯一答案經常與Linux有關。許多企業開發人員需要使用IBM或HP系統。 –

+0

謝謝。你會發現我的答案通常使用Sun4語法。最近我用AIX做了兩年,很高興知道這些基礎知識。祝你們好運! – shellter

+0

謝謝Shellter!,在1行上有整個命令:$/usr/bin/sed's /,// g'逗號分隔.txt>換行符分隔符.txt(是隱式換行符嗎?) – ilupper

1

這可能會爲你工作:

echo a,b,c,d,e | sed 'G;:a;s/,\(.*\(.\)\)/\2\1/;ta;s/.$//' 
a 
b 
c 
d 
e 

說明:

  • 追加一個換行符的模式空間。 G
  • 替代,的與所述圖案空間即\n:a;s/,\(.*\(.\)\)/\2\1/;ta
  • 的最後一個字符刪除的換行符。 s/.$//
+0

我仍然收到逗號:$ echo a,b,c,d,e | sed'G;:a; s /,\(。* \(。\)\)/ \ 2 \ 1 /; ta; s /.$//' a,b,c,d,e – ilupper

-1

上AIX7答案#3行之有效: 我需要在段落的開頭插入一個新行,所以我可以做的grep -p在出現的「節」 lsnim來過濾「的mksysb」 - l |/usr/bin/sed's/^ [a-zA-Z/\^J & /' (實際上起始行有一個轉義換行符: lsnim -l |/usr/bin/sed's/^ [ A-ZA-Z/\ & /') 回顧命令顯示了道^ J語法...

+1

什麼是'lsnim'?'^ J語法'與所有這些有什麼關係?你的回答並不清楚如何回答原始的海報題 – pcantalupo

0

我嘗試以下,樣子笨拙但做的工作。容易明白。我用tr來替換佔位符§。只有警告是佔位符,必須是不在字符串中的東西。

ps -fu $USER | grep java | grep DML| sed -e "s/ -/§  -/g" | tr "§" "\n" 

會給你一個縮進的命令行輸出。 DML只是一些服務器名稱。