0
変数をawkに渡す方法はわかっていますが、CSVを扱うときに列番号機能と組み合わせることはできませんでした。私はまた、この方法で文字列の連結を実行する方法もわかりません。awkは変数番号の既存のCSV列を追加します
私はMM-dd-yyyy
またはyyyy/MM/dd
形式で日付を含むために私のCSVで一部の列を期待し、またはそれらのいくつかの並べ替え、およびその上にデフォルトhh:mm:ss
を追加したいと思いますので、1/10/2017
の列は1/10/2017 00:00:00
なっています。私はawkでこれらの行に沿って何かをしようとしましたが、私が参照しようとしている列を認識していないようです。そして、私はこれが文字列連結がどのように行われているとは思わない。
for file in *.csv; do
headline=$(head -n 1 $file)
byline=$(sed '2q;d' $file)
IFS=', ' read -r -a headers <<< $headline
IFS=', ' read -r -a entries <<< $byline
for i in "${!headers[@]}"; do
date='^[0-9]+[/-][0-9]+[/-][0-9]+$'
if [[ ${entries[$i]} =~ $date ]] ; then
awk -F, -v col='$i' '{$($col)+="00:00:00";}1' OFS=, $file
fi
done
done
ていますが、実際には方法がわからない:
データを知らなくても、私はあなたが次のようにあなたのawkコマンドを置き換えることにより、探しているものを手に入れる必要があることを前提としシェル変数をawkに渡す:一重引用符を使用すると、変数の置換が妨げられます。 –