6.按關鍵字拼接行
如果某行以=開始,則合并到上一行并替代=為空格
代碼:
sed -e :a -e '$!N;s/\n=/ /;ta' -e 'P;D'
舉例
代碼:
cat file
111111111111111111
222222222222222222
=333333333333333333
444444444444444444
sed -e :a -e '$!N;s/\n=/ /;ta' -e 'P;D' filename
111111111111111111
222222222222222222 333333333333333333
444444444444444444
-e :a 定義一個標簽位置
$!N 如果不是最后一行,就讀入新行附加于pattern space之后,以“\n”分隔
s/\n=/ / 如果發(fā)現(xiàn)了新行是以=開頭的,替換為空格
ta 如果找到了替換,從標簽a處再執(zhí)行,否則向下走
P 打印 pattern space中的第一個 \n之前的內(nèi)容
D 刪除pattern space中的第一個 \n之前的內(nèi)容,并返回腳本頭部執(zhí)行
第一行執(zhí)行,沒有找到 \n= 打印第一行,讀入第二行,腳本頭部執(zhí)行
第二行執(zhí)行,找到 \n= ,替換為空格,從標簽a處再執(zhí)行
第三行執(zhí)行,沒有找到 \n= 打印第二三行的合并和第四行,讀入新行,沒有了,結束。
歡迎光臨 Chinaunix (http://72891.cn/) | Powered by Discuz! X3.2 |