我有一个大文件,其中包含大约500000个数字,其中一些数字包含URl,密码,正如您在我的下面的示例中看到的那样,我希望删除这些数字并仅保留包含这些数字的数字网址,密码
101045
101046
101047
101048
101049 <Password>eee33ddrFDE</Password>
<Url>http://www.example.com/9786140220447.php</Url>
--
<Password>6tgHDDYUqLH</Password>
<Url>http://www.example.com/9786140204102.php</Url>
101050
101051
101052
101053
101054
我尝试使用cat和grep以及vim
:%s/^.\{6}//
但它会删除所有号码,即使是那些有我想保留的Url,密码的号码。
答案 0 :(得分:1)
您想只保留包含密码或网址的那些行吗?
您可以使用sed
:
sed '/^[0-9]\+$/d'
或grep
:
grep '[0-9]\+ '
或vim
:
:g/^[0-9]\+$/d
答案 1 :(得分:0)
这将删除仅为number的所有行:
awk '!/^[0-9]*$/' file
101049 <Password>eee33ddrFDE</Password>
<Url>http://www.example.com/9786140220447.php</Url>
--
<Password>6tgHDDYUqLH</Password>
<Url>http://www.example.com/9786140204102.php</Url>
或者你可以使用它:
awk '/Password|http/' file
仅打印包含Password
或http
或者你可以清理一下:
awk -F"[<>/]" '/Password/ {print "Password="$3} /http/ {print "Url="$5}' file
Password=eee33ddrFDE
Url=www.example.com
Password=6tgHDDYUqLH
Url=www.example.com
答案 2 :(得分:0)
如果你想摆脱没有密码/ URI信息的行,你可以试试:
grep -E "[^0-9]+" filename