[英]How to get the contents specified in the brackets?
我想提取寫在文件中的內容。 讓我們舉個例子
{{{
How
R
U
}}}
{{{ Hi }}}
我想這樣打印輸出
How
R
U
Hi
好吧,這不是regex
而是使用gawk
多字符RS
。
awk -v RS='}}}|{{{' 'NF' inputfile
How
R
U
Hi
您可以使用諸如sed -r 's/^ +//g'
類的命令通過pipe
傳遞上述命令,以刪除行首的多余空格。
通過使用正則表達式,這變得很棘手,主要是因為grep
或awk
似乎不支持lookahead 。
要僅提取或匹配花括號中的文本,可以使用此正則表達式: https : //regex101.com/r/ASFIFa/1
[^{\}]+(?=})
因此,您可以嘗試一下ag-Silver Searcher ,如下所示會產生所需的輸出:
$ ag -o '[^{\}]+(?=})' input.txt
刪除前導空格:
$ ag -o '[^{\}]+(?=})' input.txt | sed 's/^ *//'
與sed
sed '/{{{/!d;:A;/\}\}\}/!{N;bA};s/{{{//;s/}}}//;s/ *//g' infile
要么
sed -E '/\{{3}/!d;:A;/\}{3}/!{N;bA};s/\{{3}| *|\}{3}//g' infile
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.