bashでは、点の左右に数字を区切って、数字 - 点 - 数字 - 空間パターンで構成される長い文字列を分割します。

bashでは、点の左右に数字を区切って、数字 - 点 - 数字 - 空間パターンで構成される長い文字列を分割します。

csvファイルを読み込んでいます。

dm=`awk -F "\"*,\"*" '{print $1}' file.csv`

最初の列を維持すると、次のようになります。

25.3
26.3
27.3

数行の間。

私は次の変数をしたいです。

25 26 27

そして

3 3 3

私は初めてbashに触れましたが、これを行う方法に苦労しています...分割に最も近い方法は次のとおりです。

echo $dm | tr "." " "

これだけでは十分ではありません...

ありがとう、AB

答え1

出力を配列に保存しdmて使用できますパラメータ拡張配列値からサフィックスとプレフィックスパターンを削除します。

dm=( $(awk -F "\"*,\"*" '{print $1}' file.csv) )
var1=${dm[@]%.*} # remove suffix `.*` -> "25 26 27"
var2=${dm[@]#*.} # remove prefix `*.` -> "3 3 3"

関連情報