我正在尝试解析文件中的#标签。例如:sed - 删除除匹配模式以外的所有行
Some text here #Foo Some other text here....
我想输出是:
#Foo
文本前后#能改变的,我想这个应用到文件的多条线。每一行都会有一个#,因为我已经为该文件标记了hashtags。
基本上我想要创建一个包含在文件中的井号标签的列表。如果还有一种方法可以从结果输出中删除重复的标签,这将是一种奖励。
我正在尝试解析文件中的#标签。例如:sed - 删除除匹配模式以外的所有行
Some text here #Foo Some other text here....
我想输出是:
#Foo
文本前后#能改变的,我想这个应用到文件的多条线。每一行都会有一个#,因为我已经为该文件标记了hashtags。
基本上我想要创建一个包含在文件中的井号标签的列表。如果还有一种方法可以从结果输出中删除重复的标签,这将是一种奖励。
sed
随着:
sed -E 's/^[^#]*(#[^[:blank:]]*).*/\1/'
^[^#]*
之前第一#
(#[^[:blank:]]*)
的部分匹配匹配后跟任意麻木#
的非空间/制表符,和ER把比赛中捕获组1
.*
匹配其余
在更换,所捕获的组\1
用于
实施例:
% sed -E 's/^[^#]*(#[^[:blank:]]*).*/\1/' <<<'Some text here #Foo Some other text here'
#Foo
这个答案与'grep'命令的答案完全相同,但是使用'sed'来完成工作,所以我将其标记为答案。 – Atari911
有什么理由不能使用例如'grep -o -E'#\ S +'myf ile.txt' –
哈哈!我只是在试验这个!我猜这不起作用的主要原因是我想更改文件,但我没有提到在最初的问题中,我实际上可能能够解决该问题。 – Atari911