awkで\ n(and)\ nを区切り文字として使用する方法

awkで\ n(and)\ nを区切り文字として使用する方法

次のデータを含むファイルがあります。

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

print awk: 警告: エスケープシーケンス\(' treated as plain(' awk: fatal: 一致しない ( または (: / (/

ベストアンサー1

次のようにこれを実行できますsed

sed -e 's,\\n(.*,,' unset

それともawkあなたと一緒にたくさんの脱出をしなければなりません。

awk -F'\\\\n\\(' '{print $1}' unset

\beforeの正しいエスケープを取得し、n特別な解釈を防ぎます。(

おすすめ記事