1 개요[ | ]
- 리눅스 cat 여러 파일 사이에 구분자 넣기
2 테스트 환경구성[ | ]
Console
Copy
root@wsl:~# echo alice > a.txt
root@wsl:~# echo bob > b.txt
root@wsl:~# echo carol > c.txt
3 앞에 구분자 넣기[ | ]
3.1 각 파일명 지정[ | ]
Console
Copy
root@wsl:~# (cat a.txt; echo ---; cat b.txt; echo ---; cat c.txt)
alice
---
bob
carol
root@wsl:~# (cat a.txt; echo ---; cat b.txt; echo ---; cat c.txt) > merged.txt
root@wsl:~# cat merged.txt
alice
---
bob
---
carol
3.2 와일드카드 파일명[ | ]
3.2.1 방법: sed[ | ]
Console
Copy
root@zetawiki:~# sed 's|^|---\n|g' *.txt
---
alice
---
bob
---
carol
3.2.2 방법: awk[ | ]
※ 주의: 버전에 따라 안되는 경우가 있는 듯
Console
Copy
root@zetawiki:~# awk 'BEGINFILE {print "---"}{print}' *.txt
---
alice
---
bob
---
carol
4 사이에 구분자 넣기[ | ]
4.1 방법: sed[ | ]
Console
Copy
root@zetawiki:~# sed 's|^|---\n|' *.txt | sed ':a;N;$!ba;s|^---\n||'
alice
---
bob
---
carol
4.2 방법: awk+sed[ | ]
※ 주의: 버전에 따라 안되는 경우가 있는 듯
Console
Copy
root@zetawiki:~# awk 'BEGINFILE {print "---"}{print}' *.txt | sed ':a;N;$!ba;s|^---\n||'
alice
---
bob
---
carol
4.3 방법: 스크립트[ | ]
multicat.sh
Bash
Copy
#!/bin/bash
delimiter='---'
for file in "$@"; do
cat $file
if [ "$file" != "${@: -1}" ]; then echo $delimiter; fi
done
Console
Copy
root@zetawiki:~# sh multicat.sh a.txt b.txt c.txt
alice
---
bob
---
carol
5 같이 보기[ | ]
편집자 Jmnote 125.132.26.98
로그인하시면 댓글을 쓸 수 있습니다.