と相互作用Iはリストfarm.txt有する:Awkの、システム()関数、シェル
cow
chicken
horse
pig
を有するI BASH変数$ヘッダに割り当てられたカンマ区切り値の次の文字列、:
私が使用cow,hay,2,12:00
cow,grain,3,12:00
chicken,corn,1000,11:00
pig,slop,76,04:00
horse,apple,1,23:00
...
:
animal,food_type,food_amount,feed_time
は最後に、私はこれらの動物のそれぞれのケアについてのデータを含むファイルcare.csvを持っていますAWKを使用してfarm.txt内の各単語を取得し、それを使用して "[animal] _care.csv"という形式の新しい.csvファイルを作成します。
awk -F '\r' 'NR > 1 { system("touch " $1"_care.csv") }' farm.txt
このスクリプトはこれまでのところ動作します。私は私が期待した出力を得る:私は今、何をしたいか
cow_care.csv
chicken_care.csv
horse_care.csv
pig_care.csv
はcare.csvを通じてサイクルに再びAWKを使用して、適切な[動物] _care.csvファイルに各行を割り当てることです。ここに私が試みているものがあります:
awk -F ',' '{ system("echo " $0 " >> " $1 "_stale.csv") }' care.csv
しかし、これは動作していません。最後に、文字列$ headerを各[anima] _care.csvファイルの先頭に入れたいと思います。
私は困惑しています。誰かが正しい方向に向かうことができますか?ありがとう。
解決策は、ヘッダーの追加を除いて、広告されたとおりに動作します。どちらの方法でも、ヘッダーをファイルの先頭に挿入することはできません。 – OnlyDean
これは、各行の前にヘッダを何度も印刷すると思います。 – karakfa
@ user3285817申し訳ありませんが、 '='が見つかりませんでした。 'NR = 1'ではなく、' NR == 1 'でなければなりません。今それは私のために働く – hek2mgl