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
print-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