Grep以特定字符开头的字符串的所有实例
我希望将所有以字符'rs'开头(仅来自一个文件)的字符串实例化并将全部字符串管道化为新文件。 我设法实例的计数,但我不知道如何让他们到新文件:Grep以特定字符开头的字符串的所有实例
grep -c rs < /home/Stephanie/this.txt
698572
文件中一行的一个例子是:
1203823 forward efjdhgv rs124054t8 dhdfhfhs
12045345 back efjdkkjf rs12445368 dhdfhfhs
我只想抓住rs字符串并将其移动到ne文件。 有人可以帮助我与管道?我读了一下,但是我发现对我来说并不是特别有用。 感谢
我建议是这样的:
egrep -o "(\s(rs\S+))" data.txt | cut -d " " -f 2 > newfile.txt
\s
寻找的东西,与任何空白开始字符
(rs\S+)
,然后查找其中以“RS”开始,接着是任何非空白字符
结果还是有它的白空间,这是我们不希望一个字符串,所以我们“剪切“出来,然后将内容写入新文件。
非常感谢你的工作解决方案和对不同方面的解释。 – Stephopolis 2013-02-22 14:28:27
使用Perl:
perl -lane 'print $1 while (/\b(rs\w+)/g)' input
或者使用tr
和grep
:
tr '[ \t]' '[\n\n]' < input | grep '^rs'
这里^
比赛开始行。
tr和grep的大量用法! – ubuntudroid 2014-09-29 20:28:13
perl -F -lane '$a=$_;for(@F){if(/^rs/){print $a;last}}' your_file
或
perl -lne 'print if(/[\s]rs/ || /^rs/)' your_file
使用grep命令:
grep -w -o "rs[0-9a-z]*"
超级老,但想补充到这一点。 @kev grep -c'^ rs'会将所有以rs开头的行都转储出来,而这些行都没有。
要做到这一点与大多数标准二进制相对容易,你可以使用:
cat text.file | awk {'print $4'} | grep '^rs'
这将猫咪的文件,拔出每行的第四场,只有扳指与RS启动线
试试这个:'grep -c'^ rs'this.txt> out.txt' – kev 2013-02-22 04:45:12
@kev你能解释一下^和你为什么把它放在''吗? – Stephopolis 2013-02-22 04:48:51
@kev,并只给了我0文件中的文件。它没有找到任何匹配,但我知道他们在那里 – Stephopolis 2013-02-22 04:55:08