文件示例:
1 example
2 example
3 example
4 example
如何转换以摆脱2 example
,包括其换行符?
期望的结果:
1 example
3 example
4 example
看起来像是grep的工作...
#cat example.txt
1 example
2 example
3 example
4 example
#grep -o -E "^[13-4].*$" example.txt
1 example
3 example
4 example
#grep -o -E "^[134].*$" example.txt > newfile.txt
#cat newfile.txt
1 example
3 example
4 example
正则表达式:^
= 行首[134]
= 仅数字 1、3 和 4.*
= 所有其余部分$
= 行尾
裸露的bash:
while IFS= read -r line # read file line by line
do
! [[ $line =~ ^2 ]] && echo "$line" # do not print lines starting with 2
done < file > tmp # output to tmp
mv tmp file # replace file with tmp
选择不打印的行的条件是选择不以字符2
开头的行。您可能希望指定更好的条件。
使用 awk,您可以:
$ awk '/^[^2]/' file # > tmp && mv tmp file