파일 줄과 길이를 인쇄하는 스크립트

파일 줄과 길이를 인쇄하는 스크립트

저는 파일 이름을 인수로 사용하고 파일의 모든 줄을 길이와 함께 인쇄해야 하는 스크립트를 작성해야 하는 작업을 진행 중입니다. 예: 바나나 우유 => 바나나 우유 11 unix 및 linux => 유닉스와 리눅스 14 맥북 프로 => 맥북 프로 11

답변1

이는 파일의 각 행과 행의 길이를 인쇄합니다(문자 측면에서 POSIX 호환 awk 구현의 행 구분 기호는 제외하지만 일부는 바이트 수를 제공함).

<FOO awk '{print $0,length}'

이것이 당신이 요구하는 것인지 확실하지 않습니다.

답변2

awk솔루션이 가장 좋은 솔루션이지만 awk를 사용하지 않으려는 경우 다음과 같은 몇 가지 대안이 있습니다.

while IFS= read -r line
do
        printf "%s %d\n" "$line" "${#line}"
done < "$1"
while IFS= read -r line
do
        printf "%s %d\n" "$line" "$(expr "$line" : '.*')"
done < "$1"
while IFS= read -r line
do
        printf "%s %d\n" "$line" "$(printf "%s" "$line" | wc -c)"
done < "$1"
while IFS= read -r line
do
        printf "%s %d\n" "$line" "$(wc -c <<< "$line")"
done < "$1"

wc -c <<< "$line"변형은 개행 문자를 포함하기 때문에 다른 것보다 하나 더 높은 숫자를 제공합니다.

답변3

당신이 무엇을 찾고 있는지 잘 모르겠습니다. 다음 스크립트는 원하는 출력을 정확하게 제공해야 합니다.

#!/bin/bash
cat $1
cat $1 | wc -m

관련 정보