여기에 hist.txt와 3 개의 열을 별개의 두 개의 파일 hist1.dat와 첫 번째와 두 번째 열 및 hist2.dat와 첫 번째와 세 번째 열로 구분하는 코드가 있습니다. hist.txt의 열은 둘 이상의 공백으로 구분 될 수 있습니다. 나는 histogram1.dat와 histogram2.dat에서 첫 번째 n 줄을 마지막 0이 아닌 값까지 저장하려고합니다.Awk와 head가 제대로 열을 식별하지 못합니다.
스크립트는 histogram1.dat correct를 작성하지만 histogram2.dat은 hist2.dat의 모든 행을 포함합니다. http://pastebin.com/JqgSKZrP
#!bin/bash
sed 's/\t/ /g' hist.txt | awk '{print $1 " " $2;}' > hist1.dat
sed 's/\t/ /g' hist.txt | awk '{print $1 " " $3;}' > hist2.dat
head -n $(awk 'BEGIN {last=1}; {if($2!=0) last=NR};END {print last}' hist1.dat) hist1.dat > histogram1.dat
head -n $(awk 'BEGIN {last=1}; {if($2!=0) last=NR};END {print last}' hist2.dat) hist2.dat > histogram2.dat
이 문제의 원인은 무엇입니까 :
hist.txt은 같다? head
의 경우 몇 가지 특별한 제한 사항이있을 수 있습니까?
감사합니다.
FWIW, 첫 번째 나오지 | awk는'awk '{print $ 1, $ 2}'hist.txt'로 축소 될 수 있습니다. –