删除以shell中的字符开头的行

时间:2017-06-09 02:42:13

标签: linux shell sed

我有数据集:

file.txt
de
fds
fds
a
sa
1
2
3
1
}

我想删除所有以字符或特殊字符开头的行。所以我的outfile是:

out.txt
1
2
3
1

我可以用'sed'手动完成,但我正在为此寻找合适的命令。

我的代码:

sed -i '/d//g' file.txt
sed -i '/f//g' file.txt
sed -i '/a//g' file.txt
sed -i '/s//g' file.txt
sed -i '/}//g' file.txt

2 个答案:

答案 0 :(得分:2)

grep -E选项用于正则表达式(或简称egrep):

grep -E "^[0-9].*" file.txt

答案 1 :(得分:2)

只保留以数字开头的行:

$ sed -i.bak -r '/^[0-9]/!d' filename

或删除以特定字符开头的行:

$ sed -i.bak -r '/^[dfas}]/d' filename