【一題試水平】 利用sed命令將test.txt中所有的回車替換成空格?

運(yùn)維學(xué)習(xí)交流群-點(diǎn)我加群:598972270
歡迎入群交流更多方法

題目背景,這個題也很有年頭了,看似簡單,實(shí)則坑很大,good luck! 先不要看答案 看看自己能寫出多少方法.

方法1 把每一行內(nèi)容追加到Hold Space中,最后1行弄回到Pattern space中.然后進(jìn)行替換

基礎(chǔ)版
[root@oldboyedu-show01 ~]# seq 10 |sed -n 'H;$x;s#\n# #gp'

 1 2 3 4 5 6 7 8 9 10

[root@oldboyedu-show01 ~]# seq 10 |sed -n '1h;1!H;$x;s#\n# #gp'

1 2 3 4 5 6 7 8 9 10

[root@oldboyedu-show01 ~]# seq 10 |sed -n 'H;$x;s#\n# #gp'

 1 2 3 4 5 6 7 8 9 10

[root@oldboyedu-show01 ~]# seq 10 |sed -n 'H;${x;s#\n# #gp}'

 1 2 3 4 5 6 7 8 9 10
加強(qiáng)版: 上面的方法每一行開頭多個空格.
[root@oldboyedu-show01 ~]# seq 10 |sed -n '1h;1!H;$x;s#\n# #gp'

1 2 3 4 5 6 7 8 9 10

[root@oldboyedu-show01 ~]# seq 10 |sed -n '1h;1!H;${x;s#\n# #gp}'

1 2 3 4 5 6 7 8 9 10

備注:h,H,N的含義參考:
【進(jìn)階】04-老男孩教育-sed命令模式空間及保持空間命令
http://www.itdecent.cn/p/770b69cdbbb0

1.1.1.2 方法2 sed命令的“循環(huán)(標(biāo)簽)”方法

[root@oldboyedu-show01 ~]# seq 10 |sed ':label ;N;s#\n# #g;t label'

1 2 3 4 5 6 7 8 9 10

1.1.1.3 方法3 tr

如果不用sed直接用tr即可

[root@oldboyedu-show01 ~]# seq 10 |tr "\n" " "

1 2 3 4 5 6 7 8 9 10

1.1.1.4 方法4 awk 修改ORS

ORS是Output Record Separator 輸出分隔符,用來指定awk在顯示每一行的時候每一行的結(jié)尾是什么默認(rèn)是回車這里改成了空格。正好符合題意,把回車替換成空格.

[root@oldboyedu-show01 ~]# seq 10 |awk -vORS=" " '1'

1 2 3 4 5 6 7 8 9 10 [root@oldboyedu-show01 ~]#

[root@oldboyedu-show01 ~]# seq 10 |awk -vORS=" " '{print $0}'

1 2 3 4 5 6 7 8 9 10 [root@oldboyedu-show01 ~]#
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容