簡體   English   中英

如何獲取括號中指定的內容?

[英]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傳遞上述命令,以刪除行首的多余空格。

通過使用正則表達式,這變得很棘手,主要是因為grepawk似乎不支持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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM