我的檔案夾中有很多檔案filesToCheck,下面給出一些示例。我需要result.txt如下所示的輸出。我認為CAKE_FROSTING\(\".*\"這個任務需要正則運算式,但我并不精通 bash 腳本。我可以將 linux bash 與任何不需要額外安裝的命令一起使用。
檔案1.cpp
something
CAKE_FROSTING("is.simply.the.best", "[no][matter][what]") { DO(something(0) == 1); }
檔案2.h
something else
CAKE_FROSTING(
"is.kinda.neat",
"[i][agree]") something else
something more
檔案 3.cpp
hello
檔案4.cpp
random_text CAKE_FROSTING("Can be nice") "more random text"
CAKE_CREAM("totally.sucks", "[trust][me]")
檔案空.h
結果.txt
is.simply.the.best
is.kinda.neat
Can be nice
編輯:我試過
awk '"CAKE_FROSTING\("{print $2}' filesToCheck/file1.cpp
但這給出了錯誤的輸出“[no][matter][what]”)并且只在一個檔案上運行。
uj5u.com熱心網友回復:
使用 GNUsed
$ sed -Enz 's/.*CAKE_FROSTING\(\n?"([^"]*).*/\1\n/p' /path/to/filesToCheck/*
is.simply.the.best
is.kinda.neat
Can be nice
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/528133.html
標籤:linux重击sed脚本
