例:
sed -n -e /^-/p -e /^+/p ./modified.diff | sed -n -e '/^+++/!p' | sed -e 's/--- a//g' tee sed_modified.log
説明:
1. modified.diff の-or+開始する行を出力
2. 上記出力結果に+++始まる行を対象外で出力
3. 上記出力結果に--- aを削して出力
4. 上記出力結果をscreenに表示しながら、sed_modified.logにも出力.
sed option説明
-e : editの意味、置換処理に利用。
-e : editの意味、置換処理に利用。
例: sed -e 's/abc/ABC/g'. s:正規表現で置換処理、g:すべてマッチ.
echo xx34 | sed -e 's/xx\(.\)/-& -/g' ##-> -xx3-4
& : match value.
-E : editの意味、置換処理に利用, 拡張正規表現。
-e : \([a-zA-Z0-9]+\) の対応 -E (\w+)
echo xx34 | sed -E 's/xx(\w+)/-&-/g' ##-> -xx3-4
-d:deleteの意味. !は逆意味.
例: sed 1,3d #1行目~3行目を削除、4行目以降を出力
sed 's/^java/!d' #java始まる行を保留、それ以外の行を削除
-n -p: -nによりdefault出力しない、-pより対象行出力
参照:https://hydrocul.github.io/wiki/commands/sed.html
# 先頭の行のみを出力
sed -n -e 1p
# 最後の行のみを出力
# \ はシェルのエスケープ
sed -n -e \$p
# 6行目から15行目を出力
sed -n -e 6,15p
# 奇数行のみを出力
sed -n -e 1~2p
# 1行目、6行目、11行目、16行目、、、を出力
sed -n -e 1~5p
# 正規表現にマッチする行を出力
sed -n -e /xxx/p
# これは以下と同じ
grep -e xxx
# 逆に正規表現にマッチしない行を出力(dコマンドでの例)
sed -e /xxx/d
# これは以下と同じ
grep -v -e xxx
# 正規表現にマッチする行を出力
# 先頭に \ を付ければ、正規表現を囲む記号はなんでもよい
sed -n -e '\%xxx%p'
# 1つ目の正規表現にマッチする行から2つ目の正規表現にマッチする行までを出力
sed -n -e /xxx/,/yyy/p
# 正規表現にマッチする行から3行分を出力
# 正規表現にマッチするごとに最低3行が出力される
sed -n -e /xxx/,+3p
# 正規表現にマッチする行から最後までを出力
# $ が最後という意味になる
sed -n -e '/xxx/,$p'
# 20行目から23行目までの4行分を出力
sed -n -e 20,+3p
没有评论:
发表评论