cat file1 file2
두 개의 텍스트 파일을 결합합니다. 그러나 두 줄 사이에 구분 기호를 추가 ********************************
하려면 첫 번째 파일을 열고 끝에 줄을 추가하거나 두 번째 파일을 열고 맨 위에 줄을 추가 한 다음 실행해야합니다 cat
명령? 명령을 실행하여 수행 할 수 있습니까?
cat file1 file2
두 개의 텍스트 파일을 결합합니다. 그러나 두 줄 사이에 구분 기호를 추가 ********************************
하려면 첫 번째 파일을 열고 끝에 줄을 추가하거나 두 번째 파일을 열고 맨 위에 줄을 추가 한 다음 실행해야합니다 cat
명령? 명령을 실행하여 수행 할 수 있습니까?
답변:
에서 bash
와 zsh
당신은 할 수 있습니다 :
cat file1 <(echo '********************************') file2
또는 mikeserv가 자신의 의견 (모든 셸)에 표시된 것처럼 :
echo '********************************' | cat file1 - file2
Bash에서 David Z는 다음과 같이 말했습니다.
cat file1 - file2 <<< '********************************'
파일의 모든 줄 바꿈이 표시됩니다. "separator"뒤에 개행 문자를 원하지 않는 경우 (예 : file2
개행 문자로 시작하는 경우 )를 사용할 수 echo -n '****'
있으므로 *
.
echo
항상 그렇습니다 .
printf 'no newline' | tee file1 >file2; printf 'no newline' | cat file1 - file2
...<(echo -n '****')
줄 바꿈을 억제하는 데 사용할 수 있습니다 . cat
파일에 하나가있을 때만 표시합니다 (끝에).
here 에서 cat
찾은대로 사용하지 않는 또 다른 방법 은
awk 'FNR==1{print "******"}{print}' file1 file2 | sed '1d'
마지막 sed 1d
파이프는 구분 기호가있는 첫 번째 줄을 제거하는 것입니다.
그러나 1_CR 이 sed
제안한 명령을 주석에 사용 하면 최종 사용을 피할 수 있습니다 .
awk 'FNR==1 && NR!=1 {print "******"}{print}' file1 file2
sed
과 같이 변경 하면 피할 수 있습니다.awk
FNR == 1 && NR != 1
여러 명령으로 분할 할 수도 있습니다.
cat file1; echo '------------'; cat file2
그리고 그룹 명령이나 서브 쉘을 사용하여 파이프하거나 리디렉션 할 수 있습니다.
# GROUP COMMAND:
{ cat file1; echo '----------'; cat file2; } | other-command
# ^ final semicolon is part of the syntax!
# SUBSHELL:
( cat file1; echo '----------'; cat file2 ) | other-command
물론 일반과 같이 세미콜론을 사용하는 대신 여러 줄로 작성할 수 있습니다. 그리고 다른 구분 기호 등으로 다른 파일로 쉽게 확장 할 수 있습니다.
echo '**********************' |cat file - file2