파일의 첫 번째 데이터 열을 변경하는 방법은 무엇입니까?

파일의 첫 번째 데이터 열을 변경하는 방법은 무엇입니까?

.data열 형식의 숫자 테이블이 포함된 파일이 있습니다 .

m   x    y    z    vx    vy    vz

탭으로 구분, 깊이 2000. 파일 이름은 initc.data.

파일의 첫 번째 열 전체의 값을 변경하고 싶습니다.

다음 명령을 사용해 보았습니다.

awk -F '$1 == 0.05' initc

그리고

awk -F '{print $1, "0.05"}' initc

파일을 열고 첫 번째 열에 값을 할당합니다 0.05. 모두 열리지 awk만 실행되거나 출력을 생성하지 않습니다.

관련 데이터의 예는 다음과 같습니다.

0.500000  0.500000  0.500000  0.500000  -1.500000  -1.500000  -1.500000
0.500000  0.567564  0.543674  0.536446  -1.500000  -1.500000  -1.500000
0.500000  0.454538  0.492286  0.501853  -1.500000  -1.500000  -1.500000
0.500000  0.574283  0.367439  0.668929  -1.500000  -1.500000  -1.500000

내가 찾을 수 있는 가장 관련성이 높은 질문은 다음과 같습니다.파일의 관련 데이터.

답변1

awk최신 버전처럼 사용할 수 없습니다 sed. 따라서 출력을 다른 파일로 지정하고 다음과 같이 새로 생성된 파일에서 가져와야 합니다.

awk '{$1="0.05"; print $0}' initc > initc.new && cat initc.new > initc

답변2

흥미로운 질문입니다. 변수를 설정한 다음 cut을 사용하여 데이터를 구문 분석하고 awk를 통해 변수의 내용을 출력 앞에 추가할 수 있습니다. (아마도 내장 함수가 이 작업을 수행할 수 있을 것입니다... 위의 방법이 작동할 수도 있습니다.)

x=$target
cat $file | cut -d" " -f2- | awk '{print info,$0 }' info=$target

관련 정보