我有一个文件,其中包含包括 URL 在内的数据。但其中有几行不是 URL。如何使用 Ubuntu 终端命令删除它们?
以下是供参考的示例文件:样本数据
com.blendtuts/S
°=
com.blengineering.www/:http
±=
我想要的输出是:
com.blendtuts/S
com.blengineering.www/:http
多余的线条没有任何点。因此,我想删除没有点的线条
答案1
一种方法是sed
sed '/\./!d' file
/\./
匹配文字点(用\
because 转义,否则.
匹配任何字符)!d
删除除匹配模式之外的所有内容
如果要就地编辑文件,请-i
在测试后添加到命令中。(您也可以添加.bak
到-i
标志sed -i.bak ...
以创建文件的本地备份。)
sed -i '/\./!d' file
答案2
你可以将所有内容以点开头放入一个新文件中:
grep "\." file > newfile
这样您就可以保存旧文件。
答案3
或者保留包含点,
sed -ni.bak '/\./p' infile
答案4
使用 perl:
perl -i -ne 'print if /\./' /path/to/file