fmt(gnu coreutils)에 대해 알아보기

fmt(gnu coreutils)에 대해 알아보기

fmt(GNU coreutils) 8.25를 사용하고 있는데 어떻게 사용하는지 모르겠습니다. 특히, 다음 결과가 이해가 되지 않습니다.

  1. $ echo -n "a b c d e" | fmt -w3 -g3

    나는 얻을 것으로 예상한다

    a b
    c d
    e
    

    하지만 난 이해해

    a 
    b
    c 
    d
    e
    

    그래서 나는 fmt그것이 삽입하고 시도한 줄 바꿈을 세어 볼 수 있다고 생각했습니다.

  2. $ echo -n "a b c d e" | fmt -w4 -g4

    그러나 나는 다음과 같은 결과를 얻습니다.

    a
    b c
    d e
    

    마지막으로 다음 메시지가 표시되지 않습니다.

  3. $ echo -n "a b c d e" | fmt -w4 -g1 나는 줄 것으로 기대한다

    a 
    b
    c 
    d
    e
    

    하지만 그것은

    a
    b c
    d e
    

-w그래서 분명히 및 옵션이 어떻게 작동하는지 이해하지 못합니다 -g.
누군가 내 세 가지 예의 결과를 설명할 수 있습니까?

답변1

coreutils' 에 대한 질문에 대한 답변은 아니지만 다음을 fmt사용하여 문자열 조작 사례를 해결할 수도 있습니다 sed.

printf "a b c d e\n" | sed 's/.\{1\} .\{1\} /&\n/g'

결과:

a b 
c d 
e

.\{1\}단일 문자에 해당합니다.

답변2

다음과 같이 xargs를 사용하여 예상 결과를 얻을 수도 있습니다.

printf "a b c d e\n" | xargs -n2 -d" "

생산

a b
c d
e

단일 문자뿐만 아니라:

printf "one two three four five\n" | xargs -n2 -d" "

생산:

one two
three four
five

행운을 빕니다... 건배, drl

관련 정보