0

私がやりたいことは次のとおりです。

>STRIPPER='sed s/admin_editable=\"[01]\"// | sed s/runtime_editable=\"[01]\"//'
>cat file.txt | $STRIPPER > stripped.txt  

sedつまり、後で呼び出すことができる複数のコマンドのパイプラインであるシェル変数を定義します (私の場合はたまたまです)。今はコマンドラインからこれを行っていますが、最終的にはスクリプトに入れるかもしれません。

コマンドを囲むために ' と " の両方を試しましたが、どちらも機能しません。

sed: can't read |: No such file or directory
sed: can't read sed: No such file or directory
sed: can't read s/admin_editable=\"[01]\"//: No such file or directory
sed: can't read |sed: No such file or directory
sed: can't read s/runtime_editable=\"[01]\"//: No such file or directory
sed: can't read |: No such file or directory

このケースを処理できる単一の正規表現がおそらくあることは知っていますが、一般的なパイプラインの実行方法を知りたいです。

4

1 に答える 1

3

これは、変数ではなく関数を使用するのに最適な場所です。

stripper() {
    sed s/admin_editable="[01]"// | sed s/runtime_editable="[01]"//
}

cat file.txt | stripper > stripped.txt  

cat の無用な使用をなくすこともできます。

stripper < file.txt > stripped.txt 
于 2013-02-05T17:49:59.490 に答える