Macでawkを書きました。
これをWindowsで動かそうと思っているのですが、動きません…。
環境構築はこれを参考にできました!
http://antibayesian.hateblo.jp/entry/2014/09/15/162605
gawk-4.1.0
Windows 10 64bitです。
awkはこういった↓感じです。わたしのMacで動くことを確認しました。
今回はこれ↓をWindowsユーザに渡して、Winで動かしたいです。
awk 'BEGIN {print " " > "afterMMDD_1.txt"} /正規表現〜\r/{print > "afterMMDD_1.txt"} !/正規表現〜\r/{print > "afterMMDD_2.txt"} ' /beforeMMDD.txt
↑これが動かず、調べるとダブルクオートとエスケープのあたりがおかしいとわかりました。
awk "BEGIN {print \"" \"" > "afterMMDD_1.txt"} /正規表現〜\r/{print > "afterMMDD_1.txt"} !/正規表現〜\r/{print > "afterMMDD_2.txt"} " /beforeMMDD.txt
↑外側をダブルクオートにして、内側の引用符を \""
でエスケープしました。
awk: cmd. line:1: BEGIN {print " awk: cmd. line:1: ^ unterminated string awk: cmd. line:1: BEGIN {print " awk: cmd. line:1: ^ syntax error
だめでした。
エスケープの方法を調べました。
http://ahahintechnology.blogspot.com/2009/12/single-quotes-with-awk-in-windows.html?showComment=1445875989364#c4355528885338887887
↑これを見て、
awk "BEGIN {print "" \"""" > "afterMMDD_1.txt"} /正規表現〜\r/{print > "afterMMDD_1.txt"} !/正規表現〜\r/{print > "afterMMDD_2.txt"} " /beforeMMDD.txt
エスケープを↑このように変えました。
awk: cmd. line:1: BEGIN {print > afterMMDD_1.txt} /正規表現〜/{print > afterMMDD_1.txt} !/正規表現〜/{print > afterMMDD_2.txt} awk: cmd. line:1: ^ syntax error awk: cmd. line:1: BEGIN {print > afterMMDD_1.txt} /正規表現〜/{print > afterMMDD_1.txt} !/正規表現〜/{print > afterMMDD_2.txt} awk: cmd. line:1: ^ syntax error awk: cmd. line:1: BEGIN {print > afterMMDD_1.txt} /正規表現〜/{print > afterMMDD_1.txt} !/正規表現〜/{print > afterMMDD_2.txt} awk: cmd. line:1:
やっぱりだめでした。
Windowsのgawkで動くように書き換える方法を教えてほしいです!
↓この質問の続きです。
https://teratail.com/questions/160548
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/10 04:55
2018/12/10 05:02
2018/12/10 06:34
2018/12/18 00:04