Я хочу удалить все строки / строки в файле, который имеет определенный символ '?'в моем случае.Я надеюсь, что в Bash, AWK или Perl есть команда с одной строкой.Спасибо
Вы можете использовать sed для изменения файла "на месте":
sed
sed -i "/?/d" file
В качестве альтернативы, используйте grep:
grep -v "?" file > newfile.txt
Еще лучше, всего одна строка, используя sed
sed '/?/d' input
используйте -i для редактирования файла на месте.
-i
perl -i -ne'/\?/ or print' file
или
perl -i -pe's/^.*?\?.*//s' file
Вот уже решения grep, sed и perl - только для удовольствия, чисто bash one:
pattern='?' while read line do [[ "$line" =~ "$pattern" ]] || echo "$line" done
переведенный
=~
||
awk '!($0~/?/){print $0}' file_name