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 ...
1
awk의 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