유닉스에서 항상 그렇듯이 옵션이 있습니다.
paste
paste
빈 LHS 파일과 함께 유틸리티를 사용하십시오 ( 예 :
cat ~/.bashrc | paste /dev/null -
이 cat
명령은 두 번째 스크립트의 자리 표시 자입니다.
이 paste
명령은 두 개의 파일을 가져 와서 다음과 같이 구성합니다.
$ paste file1 file2
file 1 line 1 <TAB> file 2 line 1
file 1 line two <TAB> file 2 line 2
file 1 line 3 <TAB> file 2 line iii
내가 위에서 그것을 사용하고 방법은 사용하는 것 /dev/null
같은 file1
, 그리고 STDIN
로 file2
에 의해 지정 -
. 입력으로 사용되면 /dev/null
NULL 문자를 반환합니다. 이것은 file2
두 번째 스크립트의 출력 인의 모든 행 앞에 NULL이 있고 TAB 문자가옵니다.
더 나아갈 수 있습니다 paste
. --delimiter
옵션이 있지만 두 개의 공백을 지정해도 예상되는 효과가 없습니다. 구분 기호 1 은 첫 번째 열과 두 번째 열 사이에 사용되고 구분 기호 2 는 두 번째와 세 번째 열 사이에 사용됩니다.
paste|expand
두 칸 들여 쓰기를하려면 평문을 paste
다시 사용합니다 expand -2
. 이렇게하면 모든 탭이 두 칸으로 바뀝니다.
cat ~/.bashrc | paste /dev/null - | expand -2
지정한대로 정확하게 동작합니다.
sed
또는 awk
또 다른 방법은 사용하는 것입니다 sed
나 awk
:
cat ~/.bashrc | sed 's/^/ /'
이것은 줄의 시작 ( " ^
")을 검색 하고 한 쌍의 공백을 대체하거나 삽입합니다.
cat ~/.bashrc | awk '{printf " %s\n",$0}'
이것은 각각의 전체 라인 ( " $0
")을 취하여 printf
두 공백의 형식 지정자를 사용하여 인쇄 한 문자열과 개행을 차례로 사용하여 형식을 지정합니다.
위의 모든 명령은 cat
파이프 라인을 제거 할 수 있습니다 ( 예 paste /dev/null ~/.bashrc
: 또는 paste /dev/null ~/.bashrc|expand -2
, 동일 sed 's/^/ /' ~/.bashrc
또는) awk '{printf " %s\n",$0}' ~/.bashrc
. cat
파이프 라인에서 처음 사용하는 것은 종종 초보자 오류로 간주됩니다 .