テキストファイルを受け取り、ふたつに分割するawkを書きました。
awk 'BEGIN {print " "} /正規表現〜\r/' /beforeMMDD.txt > /afterMMDD_1.txt
awk '!/正規表現〜\r/' /beforeMMDD.txt > /afterMMDD_2.txt
beforeMMDD.txtは1行1レコードのファイルです。だいたい100万行あります。
これを、正規表現に合致するかどうかで行をばらばらにしてふたつのファイルに分けます。
beforeもafterも最初の1行は半角スペースです。
上記は試行錯誤の結果、無事に動くようになりました!
わたしはこれをMacのターミナルで動かしています。
同じことをWindows使っている非エンジニアのひとにやってもらいたいと思っています。
毎日異なるbeforeMMDD.txtがあるので、1日1回はこの作業が必要です。
MMDDのところには日付が入ります。
手探りでGoogle Apps Scriptを書いてみましたが、
データが重すぎて実用的ではありませんでした。
ローカルで作業する方法がいいかと思っています。
上記のコードを何らかの方法で渡す(シェルスクリプト?)ことができたらいいし、
同じことが何かのエディタなどでできるならそれもいいです。
ただ、わたしはWindowsはほとんど触ったことがありません…。
■非エンジニアさん環境
・Excelの簡単な関数までなら使える
・Windowsのバージョンは10か8
・できればGUIでファイルを指定したりしたいけど、ファイルパスを書き込んでもらうのでもいいです
・新しいアプリの導入はOK!
■わたしの環境
・macOS 10.13.6
・bash 3.2.57
・awkのバージョンの調べ方がわからなかった…( awk -V
したら awk: unknown option -V ignored
と出ました)
よろしくお願いします!
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
正規表現が簡単な物なら、下記の内容の、aaaaa.bat
というファイルを作り、コマンドプロンプトらそのファイル名を指定するなり、ファイルをダブルクリックするなりして実行できます。
findstr
はWindows標準機能です。
CMD
1cd 対象ディレクトリ 2echo. >afterMMDD_1.txt 3findstr /r "正規表現" beforeMMDD.txt >> afterMMDD_1.txt 4findstr /v /r "正規表現" beforeMMDD.txt > afterMMDD_2.txt
findstr
が対応していないような正規表現だと、awk
あるいはgrep
、Python
、Ruby
などをインストールするか、Windows標準の独自言語、PowershellとかVBScriptなどを使って書きます。
外部からのソフトインストールが難しい人だと、後者が良いでしょうね。
投稿2018/11/27 05:32
総合スコア84538
0
まずcygwinをインストールしましょう。unix系のOSでお馴染みのツール群が「Macのターミナル」と同じように(細部の仕様は異なるかもしれない)使えるようになります。
なお質問中のawkスクリプトですが、次のようにすればおそらく所要時間がほぼ半分ですみます。
awk 'BEGIN {print " "} /正規表現〜\r/{print > "afterMMDD_1.txt"} !/正規表現〜\r/{print > "afterMMDD_2.txt"} ' /beforeMMDD.txt
投稿2018/11/27 05:24
総合スコア13671
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/27 07:26
2018/11/27 08:18 編集
2018/12/05 12:01
2018/12/07 00:56
0
ベストアンサー
AWK入れて日付処理含めバッチ書いてタスクスケジューラに登録してしまえば実行することすら自動化できますよ。
【統計屋のためのAWK入門 - あんちべ!】
http://antibayesian.hateblo.jp/entry/2014/09/15/162605
【コマンドプロンプトで動くWindows10のバッチファイルの作成と実行 | サービス | プロエンジニア】
http://proengineer.internous.co.jp/content/columnfeature/5104
【Windowsのバッチファイル中で日付をファイル名に使用する (1/2):Tech TIPS - @IT】
http://www.atmarkit.co.jp/ait/articles/0405/01/news002.html
【タスクスケジューラに登録したバッチファイルが動かない – ブログだいちゃん】
http://www.love-hokuto.com/?p=1248
投稿2018/11/27 03:21
総合スコア69407
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/27 04:20
2018/11/27 05:01
2018/11/27 05:12
2018/11/27 05:25
2018/12/04 15:16
2018/12/04 15:25
2018/12/05 00:26
2018/12/05 05:04
2018/12/05 05:13 編集
2018/12/05 05:18
2018/12/06 08:27
2018/12/06 09:10
2018/12/07 00:53
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/27 06:32 編集
2018/11/27 06:51
2018/11/27 07:25
2018/11/27 07:56
2018/11/27 09:28
2018/11/27 09:41
2018/12/05 12:04