sed常用用法技巧舉例

來源:互聯網
上載者:User

標籤:shell

1.sed替換分行符號及標籤的使用

echo "a,b,c,d" |sed ‘s/,/\n/g‘|sed ‘s/\n/,/g‘

解析:以上命令實現不了替換分行符號,這跟sed的行處理方式有關,sed讀取一行時,會先把分行符號去掉,處理完後再添加上,所以是無法使用上面的命令進行分行符號替換的,必須使用sed中的其它命令來完成。上面的恢複可以使用tr命令:

echo "a,b,c,d" |sed ‘s/,/\n/g‘|tr -t ‘\n‘ ‘,‘

以下命令能實現替換文本中全部分行符號:

sed ‘:label;N;s/\n/:/;b label‘ filenamesed ‘:label;N;s/\n/:/;t label‘ filename

解析:

:label;  這是一個標籤,用來實現跳轉處理,名字可以隨便取(label),後面的b label就是跳轉指令

N;  N是sed的一個處理命令,追加文字資料流中的下一行到模式空間進行合并處理,因此是分行符號可見

s/\n/:/;   s是sed的替換命令,將分行符號替換為冒號

b label  或者 t label    b / t 是sed的跳轉命令,跳轉到指定的標籤處

2.sed輸出奇數行和偶數行

a.

sed -n ‘p;n‘ file    #奇數行sed -n ‘n;p‘ file    #偶數行

解析:n表示讀取下一個輸入行,用下一個命令處理新的行而不是第一個命令。

b.

sed -n ‘1~2p‘ file    #奇數行sed -n ‘2~2p‘ file    #偶數行

解析:第一個數字表示起始行,第二個數字表示步長。

參考資料:

http://my.oschina.net/shelllife/blog/118337

sed常用用法技巧舉例

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.