아트 파일( cat -A
출력):
.::""-, .::""-.$
/:: \ /:: \$
|:: | _..--""""--.._ |:: |$
'\:.__ / .' '. \:.__ /$
||____|.' _..---"````'---. '.||____|$
||:. |_.' `'.||:. |$
||:.-'` .-----. ';:. |$
||/ .' '. \. |$
|| / '-. '. \\ |. |$
||:. _| ' \_\_\\/( \ |$
||:.\_.-' ) || m `\.--._.-""-;$
||:.(_ . '\ __'// m ^_/ / '. _.`.$
||:. \__^/` _)```'-...' _ .-'.' '-.$
||:..-'__ .' '. . ' '. `'.$
||:(_.' .`' _. ' '-. '. . ''-._$
||:. : '. .' '. . ' ' '.` '._$
||:. : '. .' .::""-: .''. ' . . ' ':::''-.$
||:. .' ..' . /:: \ '. . '. /:: \$
||:.' .' '. |:: | _.:---""---.._' |:: |$
||. : '\:.__ / .' -. .- '. \:.__ /$
||: : '. . ||____|_.' .--. .--. '._||____|$
||:'.___: '. .' ||:. | ( \/ ) ||:. |$
||:___| \ '. : ||:. | '-. .-' ||:. |$
[[____] '. '.-._||:. | __ '..' __ ||:. |$
'. : ||:. | (__\ (\/) /__) ||:. |$
'. : ||:. | ` \/ ` ||:. |$
'-: ||:. | () ||:. |$
'._||:. |________________________||:. |$
||:___|'-.-'-.-'-.-'-.-'-.-'-.-||:___|$
[[____] [[____]$
제목 파일( cat -A
출력):
$
$
_________ .__ $
/ _____/____ _____ ______ | | ____ $
\_____ \\__ \ / \\____ \| | _/ __ \ $
/ \/ __ \| Y Y \ |_> > |_\ ___/ $
/_______ (____ /__|_| / __/|____/\___ >$
\/ \/ \/|__| \/ $
___________ __ $
\__ ___/___ ___ ____/ |_ $
| |_/ __ \\ \/ /\ __\ $
| |\ ___/ > < | | $
|____| \___ >__/\_ \ |__| $
\/ \/ $
$
$
art_file을 Caption_file과 나란히 병합하려고 합니다. 나는 지금까지 두 가지 방법을 시도했습니다.
사용
pr -Jmt art_file caption_file
.::""-, .::""-. /:: \ /:: \ |:: | _..--""""--.._ |:: | _________ .__ '\:.__ / .' '. \:.__ / / _____/____ _____ ______ | | ____ ||____|.' _..---"````'---. '.||____| \_____ \\__ \ / \\____ \| | _/ __ \ ||:. |_.' `'.||:. | / \/ __ \| Y Y \ |_> > |_\ ___/ ||:.-'` .-----. ';:. | /_______ (____ /__|_| / __/|____/\___ > ||/ .' '. \. | \/ \/ \/|__| \/ || / '-. '. \\ |. | ___________ __ ||:. _| ' \_\_\\/( \ | \__ ___/___ ___ ____/ |_ ||:.\_.-' ) || m `\.--._.-""-; | |_/ __ \\ \/ /\ __\ ||:.(_ . '\ __'// m ^_/ / '. _.`. | |\ ___/ > < | | ||:. \__^/` _)```'-...' _ .-'.' '-. |____| \___ >__/\_ \ |__| ||:..-'__ .' '. . ' '. `'. \/ \/ ||:(_.' .`' _. ' '-. '. . ''-._ ||:. : '. .' '. . ' ' '.` '._ ||:. : '. .' .::""-: .''. ' . . ' ':::''-. ||:. .' ..' . /:: \ '. . '. /:: \ ||:.' .' '. |:: | _.:---""---.._' |:: | ||. : '\:.__ / .' -. .- '. \:.__ / ||: : '. . ||____|_.' .--. .--. '._||____| ||:'.___: '. .' ||:. | ( \/ ) ||:. | ||:___| \ '. : ||:. | '-. .-' ||:. | [[____] '. '.-._||:. | __ '..' __ ||:. | '. : ||:. | (__\ (\/) /__) ||:. | '. : ||:. | ` \/ ` ||:. | '-: ||:. | () ||:. | '._||:. |________________________||:. | ||:___|'-.-'-.-'-.-'-.-'-.-'-.-||:___| [[____] [[____]
paste art_file caption_file
.::""-, .::""-. /:: \ /:: \ |:: | _..--""""--.._ |:: | _________ .__ '\:.__ / .' '. \:.__ / / _____/____ _____ ______ | | ____ ||____|.' _..---"````'---. '.||____| \_____ \\__ \ / \\____ \| | _/ __ \ ||:. |_.' `'.||:. | / \/ __ \| Y Y \ |_> > |_\ ___/ ||:.-'` .-----. ';:. | /_______ (____ /__|_| / __/|____/\___ > ||/ .' '. \. | \/ \/ \/|__| \/ || / '-. '. \\ |. | ___________ __ ||:. _| ' \_\_\\/( \ | \__ ___/___ ___ ____/ |_ ||:.\_.-' ) || m `\.--._.-""-; | |_/ __ \\ \/ /\ __\ ||:.(_ . '\ __'// m ^_/ / '. _.`. | |\ ___/ > < | | ||:. \__^/` _)```'-...' _ .-'.' '-. |____| \___ >__/\_ \ |__| ||:..-'__ .' '. . ' '. `'. \/ \/ ||:(_.' .`' _. ' '-. '. . ''-._ ||:. : '. .' '. . ' ' '.` '._ ||:. : '. .' .::""-: .''. ' . . ' ':::''-. ||:. .' ..' . /:: \ '. . '. /:: \ ||:.' .' '. |:: | _.:---""---.._' |:: | ||. : '\:.__ / .' -. .- '. \:.__ / ||: : '. . ||____|_.' .--. .--. '._||____| ||:'.___: '. .' ||:. | ( \/ ) ||:. | ||:___| \ '. : ||:. | '-. .-' ||:. | [[____] '. '.-._||:. | __ '..' __ ||:. | '. : ||:. | (__\ (\/) /__) ||:. | '. : ||:. | ` \/ ` ||:. | '-: ||:. | () ||:. | '._||:. |________________________||:. | ||:___|'-.-'-.-'-.-'-.-'-.-'-.-||:___| [[____] [[____]
둘 다 두 번째 파일의 정렬을 엉망으로 만드는 반면 붙여넣으면 더 나은 출력이 생성됩니다. 그래서 내 질문은 다음과 같습니다
- 을 사용하여 원하는 출력을 생성할 수 있습니까
paste
?pr
어쩌면 내가 몇 가지 옵션을 간과하고 있는 것은 아닐까? - 그 중 어느 것도 작업에 적합한 도구가 아닌 경우 새 프로그램을 작성하는 대신 어떤 기존 솔루션을 사용할 수 있습니까?
답변1
문제는 각 줄의 길이가 다르다는 것입니다. 가장 간단한 해결책은 충분히 큰 너비를 제공하는 것입니다 pr
.
pr -mtw 150 art_file caption_file
제목 텍스트를 더 가깝게 만들고 싶다면 추천합니다
awk '
l<length && NR<=n{l=length}
NR!=FNR{
printf "%-"l"s", $0
getline line < "caption"
print line
}
' n="$(wc -l < caption)" art art
n
자막 파일의 줄 수입니다.l
n
아트 파일의 첫 번째 줄 사이의 가장 긴 줄의 길이입니다.printf
모든 줄에 길이가 있도록 아트 파일을 공백으로 오른쪽에 채웁니다l
.getline
그런 다음 헤더 파일에서 한 줄을 가져와 방금 인쇄한 아트 줄 옆에 인쇄합니다.
l
in 값을 더하거나 빼서 printf
간격을 일시적으로 조정할 수 있습니다.
.::""-, .::""-.
/:: \ /:: \
|:: | _..--""""--.._ |:: | _________ .__
'\:.__ / .' '. \:.__ / / _____/____ _____ ______ | | ____
||____|.' _..---"````'---. '.||____| \_____ \\__ \ / \\____ \| | _/ __ \
||:. |_.' `'.||:. | / \/ __ \| Y Y \ |_> > |_\ ___/
||:.-'` .-----. ';:. | /_______ (____ /__|_| / __/|____/\___ >
||/ .' '. \. | \/ \/ \/|__| \/
|| / '-. '. \\ |. | ___________ __
||:. _| ' \_\_\\/( \ | \__ ___/___ ___ ____/ |_
||:.\_.-' ) || m `\.--._.-""-; | |_/ __ \\ \/ /\ __\
||:.(_ . '\ __'// m ^_/ / '. _.`. | |\ ___/ > < | |
||:. \__^/` _)```'-...' _ .-'.' '-. |____| \___ >__/\_ \ |__|
||:..-'__ .' '. . ' '. `'. \/ \/
||:(_.' .`' _. ' '-. '. . ''-._
||:. : '. .' '. . ' ' '.` '._
||:. : '. .' .::""-: .''. ' . . ' ':::''-.
||:. .' ..' . /:: \ '. . '. /:: \
||:.' .' '. |:: | _.:---""---.._' |:: |
||. : '\:.__ / .' -. .- '. \:.__ /
||: : '. . ||____|_.' .--. .--. '._||____|
||:'.___: '. .' ||:. | ( \/ ) ||:. |
||:___| \ '. : ||:. | '-. .-' ||:. |
[[____] '. '.-._||:. | __ '..' __ ||:. |
'. : ||:. | (__\ (\/) /__) ||:. |
'. : ||:. | ` \/ ` ||:. |
'-: ||:. | () ||:. |
'._||:. |________________________||:. |
||:___|'-.-'-.-'-.-'-.-'-.-'-.-||:___|
[[____] [[____]