我想删除具有特定字符的文件中的所有行/行,'?'在我的情况下。我希望在Bash或AWK或Perl中有一个单行命令。谢谢
答案 0 :(得分:9)
您可以使用sed
“就地”修改文件:
sed -i "/?/d" file
或者,使用grep:
grep -v "?" file > newfile.txt
答案 1 :(得分:6)
更好的是,使用sed
sed '/?/d' input
使用-i
来编辑文件。
答案 2 :(得分:3)
perl -i -ne'/\?/ or print' file
或
perl -i -pe's/^.*?\?.*//s' file
答案 3 :(得分:2)
这里已经有了grep,sed和perl解决方案 - 仅限于有趣,纯粹的bash:
pattern='?'
while read line
do
[[ "$line" =~ "$pattern" ]] || echo "$line"
done
翻译
=~
||
- 请打印出答案 4 :(得分:1)
awk '!($0~/?/){print $0}' file_name