我希望能够在文件中删除所有包含特定字符'?'的行。我希望能够使用Bash、AWK或Perl中的单行命令。谢谢。
sed
对文件进行“原地”修改:sed -i "/?/d" file
另一种方法是使用grep:
grep -v "?" file > newfile.txt
sed
命令即可。sed '/?/d' input
使用-i
选项直接编辑文件。
perl -pe '/?/d'
无法工作。 - kirill_igumperl -i -ne'/\?/ or print' file
或者
perl -i -pe's/^.*?\?.*//s' file
这里已经有grep、sed和perl的解决方案了 - 只是为了好玩,还有一个纯bash的解决方案:
pattern='?'
while read line
do
[[ "$line" =~ "$pattern" ]] || echo "$line"
done
翻译
=〜
||
- 打印出该行awk '!($0~/?/){print $0}' file_name