我正在努力解析文件中的主题标签。例如:
#Foo
我希望输出为:
GroupChat chat = new GroupChat();
#之前和之后的文本可以更改,我试图将其应用于文件的多行。每行都会有一个#,因为我已经为了标签而填写了文件。
基本上我试图创建一个包含在文件中的主题标签列表。如果还有一种方法可以从结果输出中删除重复的标签,这将是一个奖励。
答案 0 :(得分:2)
使用GNU grep:
grep -o '#[^ ]*' file
答案 1 :(得分:1)
使用sed
:
sed -E 's/^[^#]*(#[^[:blank:]]*).*/\1/'
^[^#]*
匹配第一个#
(#[^[:blank:]]*)
匹配#
后跟任意数量的非空格/制表符,并将匹配项置于捕获的组1中
.*
与其他
在替换中,使用了捕获的组\1
示例:强>
% sed -E 's/^[^#]*(#[^[:blank:]]*).*/\1/' <<<'Some text here #Foo Some other text here'
#Foo