14
sed -i '/first/i This line to be added' 

この場合、 pattern =first の検索中に大文字と小文字を区別しない方法

4

6 に答える 6

8

GNU シード

sed '/first/Ii This line to be added' file
于 2013-06-04T12:40:14.587 に答える
1

特殊変数を理解しない 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

于 2016-04-29T09:16:17.997 に答える