我想使用shell将
file1示例(输入):
[...]
<a class="none" data-container="#fr_5854841" href="https://example.com/profiles/2016854218"></a>
<div class="new_cl">
<img src="2016854218_medium.jpg">
</div>
<div class="blocker">Novaa<br>
<span class="friend_small_text">
[...]
file2示例(输出):
2016854218
2016859711
2017076181
答案 0 :(得分:0)
grep -Eo '\d{10}' file1 > file2
答案 1 :(得分:0)
编辑: :由于OP希望拥有http
链接的完整值,直到所有数字也都添加了此解决方案。
awk --re-interval 'match($0,/https:.*[0-9]{10}/){print substr($0,RSTART,RLENGTH)}' Input_file
如果输入文件中有M个字符,请先执行cat -v Input_file
,如果可以,请运行dos2unix
实用程序(如果有),请先进行操作。如果您没有,请使用:
tr -d '\r' < Input_file > temp_file && mv temp_file Input_file
但上面的命令将删除所有的控制M字符,因此要删除行最后的控制M(以防万一),请使用:
awk '{sub(/\r$/,"")}1' Input_file > temp_file && mv temp_file Input_file
现在,一旦您的控件女士不在Input_file上,则可以使用以下内容:
awk --re-interval 'match($0,/[0-9]{10}/){print substr($0,RSTART,RLENGTH)}' Input_file > Output_file
如果您拥有较新版本的GNU --re-interval
,则可以删除awk
。
答案 2 :(得分:-2)
awk -F'href="' '{print $2}' a |rev | cut -c 4- | rev
这会将整个输入文本剪切为仅链接。
输入:
[...]
<a class="none" data-container="#fr_5854841" href="https://example.com/profiles/2016854218"></a>
<div class="new_cl">
<img src="2016854218_medium.jpg">
</div>
<div class="blocker">Novaa<br>
<span class="friend_small_text">
[...]
输出:
https://example.com/profiles/2016854218