CSV列の数と削除

CSV列の数と削除

mvプレフィックスが付いた複数のcsvファイルがあります。私の目標は、5つの列(他の列は除く)を含むファイルから特定の列(名前または番号)を削除することです。

for f in mv*.csv
do
    ln= $(echo "$f" | awk '{print NF}' | sort -nu | head -n 1)
    if [ln==4]
    then
        $(echo "$f" cut -d, -f2,4 --complement >> $f)
    fi
done

3行目では、「コマンドが見つかりません」というエラーが発生したため、「切り取り」部分をテストしませんでした。私は何を見逃していますか?

PS - bashをよりよく理解するために私のエラーを理解したいのですが、sed/awk/python/何かを使用するソリューションも良いでしょう。

ありがとう

ベストアンサー1

csvcut以下で使用csvkit:

$ csvcut -C 5 data.csv >data-new.csv

その後、列5が削除され、data.csv結果がdata-new.csv

$ csvcut -C "comment" data.csv >data-new.csv

commentこれにより、名前付き列(ファイルのヘッダー行に基づく)が削除され、data.csv結果がdata-new.csv

おすすめ記事