나는 명령을 가지고있다 :
$ awk '{ print length($0); }' /etc/passwd
passwd 파일 에 모든 줄의 문자 수를 인쇄 합니다.
52
52
61
48
81
58
etc.
처음 n 줄에 대해서만 문자 수를 인쇄하려면 어떻게해야합니까?
예를 들어-처음 3 줄의 경우 다음과 같이 나타납니다.
52
52
61
답변
에게 awk
충분히 라인을 읽고되었을 때 종료 :
awk '$0 = length; NR==3 { exit }' /etc/passwd
이 솔루션은 빈 줄을 무시하지만 빈 줄은 무시합니다.
답변
직접적인 Awk 버전 (@ Thor ‘s만큼 효율적이지는 않지만)
awk 'NR <= 3 {print length}' /etc/passwd
답변
awk
@Thor와 @JJoao (+1 from me)에서 잘 설명 된 것처럼 명령만으로 실행할 수 있습니다.
당신은 결합 할 수 있습니다 awk
및 head
매개 변수 -n
아래에 설명 된대로 행의 수에 의해 다음과 같습니다 :
@Maerlyn 제안을 다음 순서로 실행 해 주셔서 감사합니다. head | awk
예를 들어 다음을 사용하여 처음 3 줄을 얻습니다.
head -n3 /etc/passwd | awk '{ print length($0); }'
-n, --lines=[-]K
print the first K lines instead of the first 10; with the leading '-', print all but the last K lines of each file