CSV行をコマンドパラメータとして使用する

CSV行をコマンドパラメータとして使用する

次のCSVファイルがあります。

Name,Age,Address
Daniel Dvorkin,28,Some Address St. 1234
(... N ...)
Foo Bar,90,Other Address Av. 3210

このパラメーターを使用するコマンドがあります。

./mycommand --name="Daniel Dvorkin" --age=28 --address="Some Address St. 1234"

最も簡単に走る方法は?私の注文CSVの各行について?

ベストアンサー1

これはとても簡単です。

sed '1d;s/\([^,]*\),\([^,]*\),\([^,]*\)/.\/mycommand --name="\1" --age="\2" --address="\3"/e' file.csv

1dヘッダー行が削除されます。 sこのコマンドは文字列を変更します。例と同様に、コマンドのe最後にs文字列が実行されます。これはGNU拡張であるため、GNU sedがない場合は次のものを使用できxargsますe

sed '1d;s/\([^,]*\),\([^,]*\),\([^,]*\)/.\/mycommand --name="\1" --age="\2" --address="\3"/' file.csv | xargs

おすすめ記事