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"

관련 정보