Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
2年前关闭。
我想使用shell将标记有模式的file1中的多行插入到file2中。
模式是10个数字,输入示例始终不同:“ 2016854218”
file1示例(输入):
file2示例(输出):
如果可以,请先输入
但以上将删除所有的控制M字符,因此要删除该行最后一行的控制M(以防万一),请使用:
现在,一旦控件M不在Input_file上,则可以使用以下命令:
如果您有较新版本的GNU
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
2年前关闭。
我想使用shell将标记有模式的file1中的多行插入到file2中。
模式是10个数字,输入示例始终不同:“ 2016854218”
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
最佳答案
编辑:由于OP也希望具有http
链接的完整值,直到所有数字现在也添加此解决方案为止。
awk --re-interval 'match($0,/https:.*[0-9]{10}/){print substr($0,RSTART,RLENGTH)}' Input_file
如果可以,请先输入
cat -v Input_file
,然后在输入文件中控制M个字符,如果可以,请先运行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
现在,一旦控件M不在Input_file上,则可以使用以下命令:
awk --re-interval 'match($0,/[0-9]{10}/){print substr($0,RSTART,RLENGTH)}' Input_file > Output_file
如果您有较新版本的GNU
--re-interval
,则可以删除awk
。10-08 09:17