一、sed讀取行和列印行解析:
1.sed讀取到模式空間的行不包括\n字元;
2.sed讀取多行到模式空間時,自動以\n字元進行分隔;
3.sed列印行時並不列印以模式空間加的\n字元,而是行逐行列印除\n外的字元,然後由p或p命令新增\n字元;
4.sed預設自動列印每乙個模式空間單元,其實是隱式執行-e 'p;d'命令
誤解:1.sed讀取到模式空間的行包括\n字元;
2.sed讀取多行到模式空間時,沒有以\n字元進行分隔,而是直接讀取檔案中的\n;
3.sed列印一行時,直接列印模式空間行資料+\n;
二、分析:
1.示例檔案:
cat file
test111
222222
2.sed處理:
sed -n -e :a -e 'n;s/\n\n/\n/;ta' -e '/test/p'
基本流程是:一直讀取新行,直到找到\n\n,並替換成\n,最後刪除匹配test的行
3.誤解分析:
patt為模式空間,comm為執行命令,out為標準輸出
patt:test111\n
comm::a
comm:$!n
patt:test111\n\n
comm:s/\n\n/\n/
patt:test111
comm:ta
comm:/test/p
out:test111
patt:
patt:222222\n
comm::a
comm:$!n
comm:s/\n\n/\n/
comm:ta
comm:/test/p
out:
patt:
最終輸出結果:test111
3.正解分析:
patt:test111
comm::a
comm:$!n
patt:test111\n空
comm:s/\n\n/\n/
comm:ta
comm:/$!n
patt:test111\n\n22222
comm:s/\n\n/\n/
path:test111\n22222
comm:/test/p
out:test111\n22222
patt:
最終輸出結果:test111\n22222\n
sed之列印和刪除特定行
在如下的紅色字型中,d 是刪除,p是列印 一 列印列印奇數行 刪除偶數行 或者偶數行 刪除奇數行 1.僅列印奇數行 sed n d tmp 2.僅列印偶數行 sed n n p tmp 二 列印包含某單詞的行 sed n word p tmp 三 列印以某單詞開頭的行 sed n word p tm...
head 和 tail 和 sed 讀取檔案
tail 從後往前 f 迴圈讀取 q 不顯示處理資訊 v 顯示詳細的處理資訊 c 數目 顯示的位元組數 n 行數 顯示行數 tail file n 3 從後往前讀三行 pid pid 與 f合用,表示在程序id,pid死掉之後結束.q,quiet,silent 從不輸出給出檔名的首部 s,sleep...
sed刪除匹配行的上一行和下一行
aa string 變數指定匹配字串 sed i e aa e n n.aa p d file 例子 insert into bonusreturnorder values 47 224 1300573 2 1 wx20160203083601539373 hbtk20160204020000110...