我想要查看以字符“rs”开头的所有字符串实例(仅来自一个文件),并将完整字符串传递给新文件。 我设法获得了实例的计数,但我不知道如何将它们放入新文件中:
grep -c rs < /home/Stephanie/this.txt
698572
文件中一行的示例是:
1203823 forward efjdhgv rs124054t8 dhdfhfhs
12045345 back efjdkkjf rs12445368 dhdfhfhs
我只想抓住rs字符串并将其移动到ne文件中。 有人可以用管道帮助我吗?我读了一下,但我找到的对我来说并不是特别有帮助。 感谢
答案 0 :(得分:7)
我建议这样的事情:
egrep -o "(\s(rs\S+))" data.txt | cut -d " " -f 2 > newfile.txt
\s
查找以任何空白字符开头的内容
(rs\S+)
然后搜索以“rs”开头的字符串,后跟任何非空白字符
结果中仍然有空格,这是我们不想要的,所以我们在将内容写入新文件之前“剪切”它们。
答案 1 :(得分:1)
使用Perl:
perl -lane 'print $1 while (/\b(rs\w+)/g)' input
或使用tr
和grep
:
tr '[ \t]' '[\n\n]' < input | grep '^rs'
此处^
匹配行的开头。
答案 2 :(得分:1)
超级老,但想补充一点。 @kev grep -c'^ rs'会转储所有以rs开头的行的计数。
要使用大多数标准二进制文件相对容易地执行此操作,您可以使用:
cat text.file | awk {'print $4'} | grep '^rs'
这会捕获文件,拉出每行的第四个字段,只拉出以rs
开头的行答案 3 :(得分:0)
perl -F -lane '$a=$_;for(@F){if(/^rs/){print $a;last}}' your_file
或
perl -lne 'print if(/[\s]rs/ || /^rs/)' your_file
答案 4 :(得分:0)
使用Grep命令:
grep -w -o "rs[0-9a-z]*"