1行ずつsedを適用

1行ずつsedを適用

ファイルテキストに直接適用するのではなく、sedを1行ずつ適用する方法を知っている人はいますか?

for i in $(cat server); do
    Exclude_List="AF|PO" 
    echo $i | egrep $LBB3B
    if [ $? -eq 0 ]; then
    **do my sed on the $i line only then continue on next line**
    fi
done

ベストアンサー1

sedすでに一行ずつ作業しています。

sed -E '/AF|PO/{ ...sed expression to apply when matching... }' server

たとえば、この正規表現に一致する行のみを印刷するには、次のようにします。

sed -nE '/AF|PO/p' server

フラグは、-Eユーティリティsedが正規表現を拡張正規表現として解釈し、-n各入力行の暗黙的な出力をオフにします。

式に一致する行で複数の操作を実行するには、その行を囲みます{ ... }。たとえば、一致する各行を2回印刷します(一致しない行は印刷しません)。

sed -nE '/AF|OP/{p;p;}' server

おすすめ記事