パラメータを渡して、LinuxでCSVファイルに列を追加します。

パラメータを渡して、LinuxでCSVファイルに列を追加します。

実行時にパラメータを渡してLinuxのCSVファイルに列を追加したいと思います。

たとえば、私の入力ファイルのInput.csv内容は次のとおりです。

abc,Nodes.csv
def,Nodes.csv
ghi,Nodes.csv
jkl,Nodes.csv

これで、次のスクリプトを実行するときに実行時にパラメータを渡したいと思います。./Datafile.sh CRE_ff

出力ファイルは次のようにする必要があります。

CRE_ff_Nodes_abc,abc,Nodes.csv
CRE_ff_Nodes_abc,def,Nodes.csv
CRE_ff_Nodes_abc,ghi,Nodes.csv
CRE_ff_Nodes_abc,jkl,Nodes.csv

ベストアンサー1

次のコマンドを作成できますcsvprepend

#!/usr/bin/gawk -f

BEGIN  { field=ARGV[1]; delete ARGV[1]; OFS=","}
       { print field,$0 }

そしてそれを使用してください:

$ chmod 755 cvsprepend               # turn it in an executable command
$ cvsprepend "New field" old.csv
New Field,abc,Nodes.csv
New Field,def,Nodes.csv

詳細:

  • field=ARGV[1]; delete ARGV[1] 最初のコマンドライン引数を保存します。 〜のようにfield
  • OFS="," 出力フィールド区切り記号の設定
  • print field,$0 新しいフィールド、OFS、古いレコードを印刷します。

おすすめ記事