1. 程式人生 > >每日一道shell練習(09)——sed處理

每日一道shell練習(09)——sed處理

sed

1. 習題

對一個文件,1至5行刪除帶有英文的行,6至10行刪除裏面的英文字符;

2. 分析

這種要求,用sed命令就可以解決了,主要用到匹配替換的知識。

3. 腳本

#!/bin/bash

sed  -n ‘1,5p‘  a.txt  |  sed  ‘/[a-zA-Z]/d‘
sed  -n ‘6,10p‘ a.txt  |  sed  ‘s/[a-zA-Z]//g‘
sed  -n ‘11,$p‘ a.txt

前兩個要求,必須使用行號匹配。主要sed是一個流編輯處理器,它是一行一行地接收輸入數據,然後再處理。

-n 和 -p 選項配合使用,就是只輸出匹配的內容。所以,在前兩行命令的意思就相當於,匹配到對應的行後,只處理這些行,然後通過管道,把它們傳給後邊的sed命令處理。

第三行的sed命令,就是把不用處理的文本都直接輸出屏幕。這樣,在屏幕上看來,就相當於完整地處理了整個文本的內容了。

每日一道shell練習(09)——sed處理