SEDモードがあります。
[^a-zA-Z0-9]
/b\./s/.*c\.. \([^ ]*\) .*/\1/p
など。
echoコマンドに変数として渡す必要があります。
現在の $pattern 変数を次のように定義します。
$pattern="[^a-zA-Z0-9]"
その後、パイプを介して次のようにエコーします。
echo "$OUTPUT" | sed "s/$pattern/g"
しかし、パターンを渡すのではなく、コードはコマンドを渡してエラーを返します。
=[^a-zA-Z0-9]: command not found
何が間違っていますか?
答え1
$ pattern='[^a-zA-Z0-9]'
$ echo "123 ABC" | sed "s/$pattern/g"
sed: -e expression #1, char 16: unterminated `s' command
$ echo "123 ABC" | sed "s/$pattern//g"
123ABC
$ echo "123 ABC" | sed "s/$pattern/XYZ/g"
123XYZABC
そして…
シェル変数は先行せずに割り当てられます
$
。
答え2
変える
$pattern="[^a-zA-Z0-9]"
渡す
pattern="[^a-zA-Z0-9]"
シェル変数は先行$なしで割り当てられます。