출력에 "이중 간격"을 추가하는 방법은 무엇입니까? [복사]

출력에 "이중 간격"을 추가하는 방법은 무엇입니까? [복사]

bash 명령(이 경우 grep)의 출력을 가져와서 두 줄마다 빈 줄을 삽입하고 싶습니다.

not
like
this ...

but

like

this!

Bash에서 이것을 수행하는 현명한 방법은 무엇입니까?

답변1

텍스트 파일을 사용하여 이를 수행하는 방법에는 여러 가지가 있습니다. 가장 간단한 것은 아마도

$ sed G filename

답변2

사용처 :prcoreutils

$ grep '' file | pr -Td
not

like

this ...

(참고하세요,하다마지막 줄은 두 배 간격으로 표시됩니다. sed '$!G')와 동일하지 않습니다. 에서 man pr:

   -d, --double-space
          double space the output

   -T, --omit-pagination
          omit page headers and trailers, eliminate any pagination by form
          feeds set in input files

답변3

다음 파일로 시작하십시오.

$ cat >file
not
like
this ...

sed는 작동합니다:

$ sed 's/$/\n/' file
not

like

this ...

awk도 마찬가지입니다.

$ awk 1 ORS='\n\n' file
not

like

this ...

1awk의 print-the-line에 대한 비밀스러운 약어입니다. 이는 ORS='\n\n'awk에게 하나가 아닌 두 개의 개행 문자로 출력 행을 분리하도록 지시합니다.

제안된 대로 더 짧은 sed 명령강철 드라이버, 예:

sed '$!G' file

G명령은 개행 문자를 추가하고예비 공간끝까지패턴 공간. 예약된 공간은 기본적으로 비어 있으므로 각 줄 끝에 개행 문자를 추가합니다. 접두사는 $!sed에게 모든 행에서 이 작업을 수행하도록 지시합니다.와는 별개로마지막 하나.

답변4

Test
10
20
30

Output
perl -pe "s/$/\n/" test 
10

20

30

관련 정보