Posted on 2010-01-19 10:32
Prayer 閱讀(1176)
評論(0) 編輯 收藏 引用 所屬分類:
Shell
echo -e "1\n2\n3\n4" | sed -n 'N;s/\n/ /;p'
sed先讀入第一行到pattern space,然后執行N命令,將第二行追加進pattern space
這時pattern space里面就是1\n2,然后執行s/\n/ /,將換行符替換成空格,最后打印。
echo -e "1\n2\n3\n4" | sed -n 'n;s/\n/ /;p'
sed先讀入第一行到pattern space,然后執行n命令,用第二行覆蓋pattern space
這時pattern space里面就是2,然后執行s/\n/ /,因為pattern space里沒有\n,所以不做任何替換,直接打印
如果sed的模式空間對應awk的$0
N相當于awk的{v=$0;next;$0=v"\n"$0}
n相當于awk的next
用shell來比喻的話
N是: echo 下一行內容>>模式空間
n是: echo 下一行內容>模式空間