艺术文件(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 ^_/ / '. _.`. | |\ ___/ > < | |
||:. \__^/` _)```'-...' _ .-'.' '-. |____| \___ >__/\_ \ |__|
||:..-'__ .' '. . ' '. `'. \/ \/
||:(_.' .`' _. ' '-. '. . ''-._
||:. : '. .' '. . ' ' '.` '._
||:. : '. .' .::""-: .''. ' . . ' ':::''-.
||:. .' ..' . /:: \ '. . '. /:: \
||:.' .' '. |:: | _.:---""---.._' |:: |
||. : '\:.__ / .' -. .- '. \:.__ /
||: : '. . ||____|_.' .--. .--. '._||____|
||:'.___: '. .' ||:. | ( \/ ) ||:. |
||:___| \ '. : ||:. | '-. .-' ||:. |
[[____] '. '.-._||:. | __ '..' __ ||:. |
'. : ||:. | (__\ (\/) /__) ||:. |
'. : ||:. | ` \/ ` ||:. |
'-: ||:. | () ||:. |
'._||:. |________________________||:. |
||:___|'-.-'-.-'-.-'-.-'-.-'-.-||:___|
[[____] [[____]