[Q]데이터 처리 하는 쉘스크립트(cut,awk 조함.)
글쓴이: assasasa / 작성시간: 화, 2005/10/04 - 5:33오후
현재 실험 데이터를 받아서, 이 데이터들에 사칙연산을 하고 싶습니다.
다음과 같이 두개의 데이터셋을 받아왔다고 가정합니다.
data1.dat
0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1
data2.dat
0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2
awk 와 cut 의 조합으로 이 두 파일의 두번째 컬럼 값들에 팩터를 줘서 곱하거나 혹은 더하고 싶습니다.
하나의 파일은 도움말 참조하여 쉘상에서 이렇게 했습니다.
$ cut -d ' ' -f1-3 data1.dat | awk '{print $1 " " $2*0.5}'
만약에 각 파일의 두번째 컬럼을 더하고 싶은데, 이는 어떻게 하면 좋겠습니까?
$ command ... data1.dat data2.dat | awk '{print file1.$1 " " file1.$2 + file2.$2*0.5 }' 대략 이런식으로는 할 수는 없을까요? C나C++ 로 짤려다, 쉘이 편할거 같다는 생각에 시도했는데.... 잘 모르겠네요. 도움 부탁드립니다.
Forums:
이럴땐 paste를 쓰세요. (두 파일의 라인수가 같은 경우)pa
이럴땐 paste를 쓰세요. (두 파일의 라인수가 같은 경우)
paste a.txt b.txt | awk '{print $1,$2+$3}'
그렇군요...
이제 막 울트라 에디터의 컬럼모드로 작업할려고 시작하던 찰나에 올려주셨네요...
감사합니다.
"마무리가 반이다" -- woox
[code:1]cut -d ' ' -f1-3 data1.dat | awk
cut -d ' ' -f1-3 data1.dat | awk '{print $1 " " $2*0.5}' | paste data2.dat - | awk '{어쩌구}'
와 같은 방식으로 쓸 수도 있습니다. (여기서 "-"는 stdin이죠)온갖 참된 삶은 만남이다 --Martin Buber
댓글 달기