출력에 "이중 줄 간격"을 어떻게 추가할 수 있나요?

출력에 "이중 줄 간격"을 어떻게 추가할 수 있나요?

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

not
like
this ...

but

like

this!

Bash에서 스마트하게 수행하는 방법은 무엇입니까?

답변1

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

$ sed G filename

답변2

pr다음에서 사용 coreutils:

$ 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 ...

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

다음에서 제안한 더 짧은 sed 명령스틸드라이버, 이다:

sed '$!G' file

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

답변4

Test
10
20
30

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

20

30

관련 정보