質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

Q&A

解決済

2回答

334閲覧

awk ファイルの結合

退会済みユーザー

退会済みユーザー

総合スコア0

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

0グッド

0クリップ

投稿2020/08/11 07:17

-------------------/null/a.txt-------------- TABLE_A{ cahr aaa char bbb char ccc };
-------------------/hoge/b.txt-------------- TABLE_B_1{ long aaa_1 long bbb_1 long ccc_1 };

上記のようにnullディレクトリにあるa.txtとhogeディレクトリにあるb.txtを下記のようにawkで結合させたいのですが、
どのようなawkにしたらよいのでしょうか。
※nullとhogeは同じ階層にあります。
※テーブル定義は一つで、テーブル定義以外はありません。

-------------------/null/a.txt-------------- TABLE_A{ cahr aaa char bbb char ccc }; TABLE_B{ long aaa_1 long bbb_1 long ccc_1 };

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答2

0

awkを使うまでもないですし、catでやってしまってはどうでしょうか?

sh

1cat /null/a.txt /hoge/b.txt > /path/to/output.txt

投稿2020/08/11 07:19

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/08/11 09:20

ありがとうございます。 変換できました! ですが、awkの場合どのような処理になるのか知りたいので、お願いできないでしょうか。
maisumakun

2020/08/11 09:27

なぜそれを「awkで」行わなければならないのでしょうか?
退会済みユーザー

退会済みユーザー

2020/08/11 15:10

単にawkの場合にはどのようになるのか知りたいからです。
guest

0

ベストアンサー

maisumakunさんのcatバージョンを単純にawkで実現するのは簡単すぎる話です。

awk '{print}' /null/a.txt /home/b.txt > /path/to/output.txt

しかし質問をよく読むと、処理結果を第3のファイルに書き出すのではなく、第1読み取り元のファイルを上書きしたいようです。単純に第3のテンポラリファイルを事後に第1のファイルに上書きコピーしてもいいのですが、せっかくなのでawkで初めから上書きする処理を考えてみましょう。

# append.awk { ln[FILENAME]++; d[FILENAME, ln[FILENAME]] = $0 } END{ for(j=1; j<=ARGC; j++){ for(i=1; i<=ln[ARGV[j]]; i++){ print d[ARGV[j], i] > ARGV[1] } } }

連想配列にデータを丸呑みし、awkのリダイレクト機能を使って第1引数に指定したファイルを上書きします。

awk -f append.awk /null/a.txt /home/b.txt

まあ質問の範囲だけ考えるなら素直にcatとcpを使ったシェルスクリプトで処理したほうが賢い気はします。

投稿2020/08/11 15:21

KojiDoi

総合スコア13669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/08/11 15:54

ありがとうございました。 参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問