sed -i '/first/i This line to be added'
この場合、 pattern =first の検索中に大文字と小文字を区別しない方法
sed '/first/Ii This line to be added' file
特殊変数を理解しない awk のバージョンでは、次のIGNORECASE
ようなものを使用できます。
awk 'toupper($0) ~ /PATTERN/ { print "string to insert" } 1' file
パターンに一致するかどうかをテストする前に各行を大文字に変換し、一致する場合は文字列を出力します。1
は最短の true条件であるため、awk はデフォルトのことを行います: { print }
.
変数を使用するには、次のようにします。
awk -v var="$foo" 'BEGIN { pattern = toupper(foo) } toupper($0) ~ pattern { print "string to insert" } 1' file
これにより、シェル変数が渡さ$foo
れ、ファイルが処理される前に大文字に変換されます。
bash で少し短くするのは、ブロックを使用-v pattern="${foo^^}"
してスキップすることです。BEGIN