%5Cn%20%E4%BD%9C%E7%82%BA%E5%88%86%E9%9A%94%E7%AC%A6.png)
我有一個包含以下數據的文件
7[label = "ScanStep: T_b0\n(T.a = 1)\na\nb\nc\nd\ne\ndob\ntimestamp1\nUnc: Integer(8)\nUnc: Integer(8)\nUnc: Varchar(80)\nUnc: Numeric(10,2)\nUnc: Varbinary(80)\nUnc: Date(8)\nUnc: Timestamp(8)", color = "brown", shape = "box"];
7[label = "ScanStep: cde_b1\nBuddies: (cde_b1, cde_b0, cde_b2)\n(public.cde.newcol = \'013\')\nssn\nnewcol\nmasked_ssn\nUnc: Numeric(10,2)\nUnc: Varbinary(80)\nUnc: Date(8)\nUnc: Timestamp(8)", color = "brown", shape = "box"];
有多個這樣的條目。
我只需要列印“\n(”之後和“)\n”之前的那些條目。
我嘗試過使用 awk 但無法提供分隔符號。
awk -F "\\n\\\\(" '{print $1}' unset
列印文件的整行
awk -F "\\n\\(" '{print $1}' unset
印出 awk: 警告: 轉義序列
\(' treated as plain
(' awk: fatal: 不符 ( 或 (: / (/
答案1
您可以像這樣完成此操作sed
:
sed -e 's,\\n(.*,,' unset
或是和awk
你一起必須做很多逃避
awk -F'\\\\n\\(' '{print $1}' unset
獲得對\
before的正確轉義n
並防止 the 的特殊解釋(
答案2
我使用 grep 和 sed 的組合來實現 after \n( 和 before )\n 的目標
grep -o '\\n(.*)\\n' test.txt|sed -e 's/\\n//g'
樣本輸出
(T.a = 1)
(public.cde.newcol = \'013\')