亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用sed替換換行符(\ n)?

如何使用sed替換換行符(\ n)?

如何使用sed替換換行符(\ n)?如何\n使用sed命令替換換行符()?我沒試成功:sed 's#\n# #g' file sed 's#^$# #g' file我如何解決它?
查看完整描述

4 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

在GNU中使用此解決方案sed

sed ':a;N;$!ba;s/\n/ /g' file

這將在循環中讀取整個文件,然后用空格替換換行符。

說明:

  1. 通過創建標簽:a

  2. 將當前和下一行附加到模式空間via N。

  3. 如果我們在最后一行之前,則跳轉到創建的標簽$!ba$!意味著不要在最后一行執行,因為應該有一個最終換行符)。

  4. 最后,替換用模式空間(即整個文件)上的空格替換每個換行符。

這是與BSD和OS X一起使用的跨平臺兼容語法sed(根據@Benjie評論):

sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g' file

如您所見,使用sed這個簡單的問題是有問題的。有關更簡單和適當的解決方案,請參閱此答案。


查看完整回答
反對 回復 2019-05-27
?
達令說

TA貢獻1821條經驗 獲得超6個贊

使用tr呢?

tr '\n' ' ' < input_filename

或完全刪除換行符:

tr -d '\n' < input.txt > output.txt

或者如果你有GNU版本(有很長的選項)

tr --delete '\n' < input.txt > output.txt


查看完整回答
反對 回復 2019-05-27
?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

更短的awk替代方案:

awk 1 ORS=' '

說明

awk程序由條件代碼塊組成的規則構成,即:

condition { code-block }

如果省略代碼塊,則使用默認值:{ print $0 }。因此,它1被解釋為真實條件并且print $0對每一行執行。

awk讀取輸入時,它會根據RS(記錄分隔符)的值將其拆分為記錄,默認情況下是新行,因此awk默認情況下會解析輸入行。拆分還涉及RS從輸入記錄中剝離。

現在,在打印記錄時,ORS(輸出記錄分隔符)會附加到其上,默認值也是換行符。因此,通過更改ORS為空格,所有換行符都將更改為空格。


查看完整回答
反對 回復 2019-05-27
  • 4 回答
  • 0 關注
  • 4168 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號