我是shell腳本新手,我試圖從每行使用SED中刪除新行字符。這是我迄今爲止所做的:使用sed從傳入流中刪除新行字符
printf "{new\nto\nlinux}" | sed ':a;N;s/\n/ /g'
只刪除Ist新行字符。 我發現某處這個命令:
printf "{new\nto\nlinux}" | sed ':a;N;$!ba;s/\n/ /g'
但它提供了:「BA:事件未找到」
,如果我這樣做:
printf "{new\nto\nlinux}" | sed ':a;N;s/\n/ /g' | sed ':a;N;s/\n/ /g'
然後它給正確的輸出,但我在尋找更好的東西,因爲我不知道有多少新的角色,當我運行該腳本,我會得到。傳入的流來自echo或printf或腳本中的某個變量。 在此先感謝
的 '巴:事件未找到' 的錯誤是在你的shell。停止使用csh,或者逃離! –
@WilliamPursell我必須使用csh只有我沒有其他選擇。你的建議我放棄了! 「printf」{new \ nto \ nlinux}「| sed':a; N; $ ba; s/\ n// g'」這個命令也沒有給出正確的結果..我知道有很多缺點csh,但必須使用它,由於一些強制:(..感謝 –
你不能刪除的'!',但你需要在它之前與反斜槓 –