Ответ 1
Для нечувствительности к регистру используйте /I вместо/i.
sed -e "/pattern/Id" filepath
Как я могу совместить не зависящее от регистров регулярное выражение и удалить его в одно и то же время
Я прочитал, что для получения нечувствительных к регистру совпадений используйте флаг "i"
sed -e "/pattern/replace/i" filepath
и удалить использование d
sed -e "/pattern/d" filepath
Я также прочитал, что могу комбинировать несколько флагов, например, 2iw
Я хотел бы знать, может ли sed сочетать я и 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"