sedを使用して、文字列fooを文字列バーでグローバルに置き換えたいとします。これは、文字列## Inputで始まらない行に対してのみ行う必要があります。特定のパターンで始まらない行の文字列をグローバルに置き換える方法
私はそれを動作させることができません。私はこのようなことを試みましたが、私が何をしているのか分かりませんでした:
sed -i '/^##Input/ s/foo/bar/g' myfile
助けてください!
sedを使用して、文字列fooを文字列バーでグローバルに置き換えたいとします。これは、文字列## Inputで始まらない行に対してのみ行う必要があります。特定のパターンで始まらない行の文字列をグローバルに置き換える方法
私はそれを動作させることができません。私はこのようなことを試みましたが、私が何をしているのか分かりませんでした:
sed -i '/^##Input/ s/foo/bar/g' myfile
助けてください!
あなただけ!
を使用して一致を否定する必要があります。
sed -i '/^##Input/! s/foo/bar/g' myfile
\#
のようにエスケープする必要があります。
醜い要求(すなわち、それらは彼らが求めたものを手に入れる)ための醜い答え:
echo \{
for file in *.json; do
sed -n '/^[\{\}]/! s/\([^\,]\)$/\1,/; /^[\{\}]/!p' $file
done
echo \{
脱出する必要はありません'#' 'sed'には特別な意味はありません。 –