Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用shell在指定模式后将多个文本行复制到文件中_Linux_Bash_Text_Awk_Sed - Fatal编程技术网

Linux 使用shell在指定模式后将多个文本行复制到文件中

Linux 使用shell在指定模式后将多个文本行复制到文件中,linux,bash,text,awk,sed,Linux,Bash,Text,Awk,Sed,我想使用shell将标有图案的文件1中的多行插入文件2。 模式为10个数字,输入始终不同例如:“2016854218” 文件1示例(输入): [...] <a class="none" data-container="#fr_5854841" href="https://example.com/profiles/2016854218"></a> <div class="new_cl"> <img src="20168542

我想使用shell将标有图案的文件1中的多行插入文件2
模式为10个数字,输入始终不同例如:“2016854218”

文件1示例(输入)

[...]
    <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">
[...]
2016854218
2016859711
2017076181

grep-Eo'\d{10}file1>file2

编辑:,因为OP希望有
http
链接的完整值,直到所有数字现在也添加此解决方案

awk --re-interval 'match($0,/https:.*[0-9]{10}/){print substr($0,RSTART,RLENGTH)}' Input_file

如果您的输入_文件中有M个字符,请先执行
cat-v输入_文件
,如果有,请运行
dos2unix
实用程序。如果没有,请使用:

tr -d '\r' < Input_file > temp_file && mv temp_file Input_file
现在,一旦您的控件Ms不在输入_文件中,您可以使用以下命令:

awk --re-interval 'match($0,/[0-9]{10}/){print substr($0,RSTART,RLENGTH)}' Input_file > Output_file
如果您随身携带较新版本的GNU
awk
,您可以删除
--re interval

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">
[...]

你尝试了什么?您的问题旨在明确从该输入中获取输出的具体步骤。@PesaThe我尝试了notepad++。。。没有太多地处理bash控制台。@EdMorton我试图在输出中得到这个。不知道怎么做,先生。我们知道你不知道怎么做,我们要求你告诉我们你想做什么。您是要打印输入中的每10位数字,还是仅打印
href=”中的数字https://example.com/profiles/2016854218“
或者仅仅是
src=“2016854218_medium.jpg”
中的数字还是其他什么?预期输出中的其他2个数字来自哪里?它们是输入中的其他地方(如果是,请将它们包括在示例中),还是您通过某种算法或其他方法生成它们?等等…谢谢你的尝试,但是这个命令不起作用。文件2(输出)为空。请为您的答案添加一个简单的解释。谢谢。这是一个脆弱、复杂、低效的方法,输出与您所说的输出不匹配。如果你告诉我们你想做什么,你现在会有一个很好的解决方案,相反,你已经发布了两个答案,它们与你自己的解决方案不一样,你已经接受了其中一个,这将阻止其他人发布答案,你有自己的解决方案,这是做任何事情的错误方式,但你仍然没有更新你的问题来解释你到底想做什么。@Andrzej Strzelba,请检查我的编辑答案,让我知道这是否有帮助,但你们真的应该在一篇文章中告诉你们所有的要求,否则人们很难理解这个问题。
[...]
    <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