csv 파일이 있는데 열 번호만 추출하고 싶습니다.7그리고11. 열 7(해당 열에 값이 있음)의 값에 따라 OK
또는 그 옆에 열( 맵 위치 KO
라고 함)을 삽입하고 싶습니다 .value
OK -> 0
KO -> 1
또한 시작 부분에 간단한 문자열 열을 추가했습니다.
내 .awk
파일은 다음과 같습니다.
BEGIN {FS=";";OFS=","}
{
value=0
if($7=="KO") {
value=1
}
print "Measure_QS",$7,value,$11
}
이 파일을 사용하십시오:
gawk -f converter.awk Dataset.csv | head -n 10
다음 콘텐츠를 제공하세요.
Measure_QS,result,0,time_stamp
Measure_QS,OK,0,2020-01-17 11:53:33.000
Measure_QS,OK,0,2020-01-17 11:53:22.000
Measure_QS,OK,0,2020-01-17 11:51:42.000
Measure_QS,OK,0,2020-01-17 11:51:30.000
Measure_QS,OK,0,2020-01-17 11:51:06.000
Measure_QS,OK,0,2020-01-17 11:50:53.000
Measure_QS,OK,0,2020-01-17 11:50:41.000
Measure_QS,OK,0,2020-01-17 11:50:29.000
Measure_QS,OK,0,2020-01-17 11:50:17.000
제목은 Measure_QS,result,0,time_stamp
다음과 같습니다.Measure_QS,result,value,time_stamp
내가 어디서 잘못됐나요?
답변1
NR
변수를 사용하여 이 문제를 해결할 수 있었습니다.gawk
BEGIN {FS=";";OFS=",";print "measurement","result","value","time_stamp"}
{
value=0
if(NR!=1) {
if($7=="KO") {
value=1
}
print "Measure_QS",$7,value,$11
}
}
이것은 잘 작동합니다
gawk -f converter.awk Dataset.csv | head -n 10
measurement,result,value,time_stamp
Measure_QS,OK,0,2020-01-17 11:53:33.000
Measure_QS,OK,0,2020-01-17 11:53:22.000
Measure_QS,OK,0,2020-01-17 11:51:42.000
Measure_QS,OK,0,2020-01-17 11:51:30.000
Measure_QS,OK,0,2020-01-17 11:51:06.000
Measure_QS,OK,0,2020-01-17 11:50:53.000
Measure_QS,OK,0,2020-01-17 11:50:41.000
Measure_QS,OK,0,2020-01-17 11:50:29.000
Measure_QS,OK,0,2020-01-17 11:50:17.000