awkを使用して異なるタイプの値を持つ.csvファイルを編集したいとします。たとえば、いくつかの異なる列のすべての値を小数点第2位に丸めます。他の行にも浮動小数点値が含まれることがありますが、それらは異なる方法で処理されます。awkを使用してcsvファイルの複数の列を編集する方法
1行が下のようになっていて、7番目、8番目、9番目の列を編集したいとします(実際にはもっと長くなりますが、すべての関連する値の型はこの例です)スケールの):
L ,P_005 ,250.092 ,20.0 ,-0.80 ,0.803443 ,0.23342 ,0.83728329 ,0.0 ,0.0
出力は、私が使用して1列の "x" の値の周りに常にきた今まで
L ,P_005 , 250.092, 20.0, -0.80, 0.80, 0.23, 0.84, 0.0, E2=0.0
次のようになります。
#/bin/sh
OLDIFS=$IFS
IFS = ","
file=$1
...
awk '{printf "%.2f",$x}' $1
...
IFS=$OLDIFS
を
それでは、どのよう私は
- 編集複数の列と
- ディスプレイ全体のCSVファイル
できる特定のオプションで各列を書き留めずに、途中でこの概念を適応させますか?私はあなたのguestion権を得た場合
あなたの質問には、簡潔でテスト可能なサンプル入力と予想される出力を含む[mcve]が含まれています。スクリプト、入力、および出力に '{}'エディタボタンを使います。あなたが現在使用しているスクリプトとして表示しているものは、有効なawk構文ではありません。私たちに1つのことを示して、それがあなたの質問を難読化し、私たちがあなたを助けることを難しくするようなものだと教えてください。 –
アドバイスありがとうございます。私は自分の編集が要件に合うことを願っています – krouch
サンプル入力/出力の1行を投稿すると、その1行の入力に対してのみ機能する解決法が得られる可能性が高くなります。あなたがあなたの質問にもっと力を入れればするほど(例えば、雨の日やあなたの入力に想定される辺のケースなど)、堅牢なソリューションを得る可能性が高くなります。 –