大文字と小文字を区別しない正規表現を照合し、同時に削除するにはどうすればよいですか
大文字と小文字を区別しない一致を取得するには、フラグ「i」を使用することを読みました
sed -e "/pattern/replace/i" filepath
および使用を削除するにはd
sed -e "/pattern/d" filepath
2iwのような複数のフラグを組み合わせることができることも読みました
Sedがiとdの両方を組み合わせることができるかどうか知りたいのですが、次のことを試しましたが、うまくいきませんでした
sed -e "/pattern/replace/id" filepath > newfilepath
大文字と小文字を区別しない場合は/I
の代わりに /i
。
sed -e "/pattern/Id" filepath
(g)awkも使用できます。
# print case insensitive
awk 'BEGIN{IGNORECASE=1}/pattern/{print}' file
# replace with case insensitive
awk 'BEGIN{IGNORECASE=1}/pattern/{gsub(/pattern/,"replacement")}1' file
または、シェル(bash)のみを使用
#!/bin/bash
shopt -s nocasematch
while read -r line
do
case "$line" in
*pattern* ) echo $line;
esac
done <"file"