bash - 并排组合两个具有多行值的变量
问题描述
从两个变量中获取两个列表并并排组合成一个变量。
假设你echo "$var1"
得到这个输出:
a
b
c
d
假设你echo $var2
得到这个输出:
1
2
3
4
我想要$var3
这个确切的输出:
a 1
b 2
c 3
d 4
你怎么做到这一点?如果您问我为什么要这样做,当您为变量分配一个命令或多个命令时,第一个命令必须开始和结束,然后第二个命令必须开始和结束,这样varx=(command1 && command2)
可以提供:
a
b
c
d
1
2
3
4
这也必须在没有文件输入或输出的情况下完成。我忘了补充,不要假设列表是静态的。事实上,假设相反,列表是动态的。也就是说,一个命令生成一个列表,另一个命令生成另一个列表。所以问题的一部分是确保输出是同步的,尤其是与像 apt 这样的脚本错误软件。它有点令人困惑,因为 apt、aptitude 和 apt-rdepends 都可以显示包和 rdepends(可能除了 aptitude)。他们都有不同的速度和级别的错误,很可能是最错误的。最好有一个测试程序速度的功能(这 3 个中哪个在显示包或 rdependencies 方面最快)。无论如何,我通过使用一个程序来获取依赖项(因此创建静态列表)和另一个程序来显示包名称和大小来解决这个问题。
正如这里所承诺的那样是脚本(第一个是这个问题的主题):
RDEPENDS 版本
ps -A &>> Distro1Analysis.txt && sudo service --status-all &>> Distro1Analysis.txt && \
for z in $(dpkg -l | awk '/^[hi]i/{print $2}' | grep -v '^lib'); do \
printf "\n$z:" && \
aptitude show $z | grep -E 'Uncompressed Size' && \
result=$(apt-rdepends 2>/dev/null $z | grep -v "Depends")
final=$(apt show 2>/dev/null $result | grep -E "Package|Installed-Size" | sed "/APT/d;s/Installed-Size: //");
if [[ (${#final} -le 700) ]]; then echo $final; else :; fi done &>> Distro1Analysis.txt
要看
ps -A &>> Distro1Analysis.txt && sudo service --status-all &>> Distro1Analysis.txt && \
for z in $(dpkg -l | awk '/^[hi]i/{print $2}' | grep -v '^lib'); do \
printf "\n$z:" && \
aptitude show $z | grep -E 'Uncompressed Size' && \
printf "\n" && \
apt show 2>/dev/null $(aptitude search '!~i?reverse-depends("^'$z'$")' -F "%p" | \
sed 's/:i386$//') | grep -E 'Package|Installed-Size' | sed '/APT/d;s/^.*Package:/\t&/;N;s/\n/ /'; done &>> Distro1Analysis.txt
这两个脚本都可以工作,但是可以更清晰地编写和优化以更快地工作。然而,这两个脚本都教。此外,尽管我修复了脚本以使其正常运行,但为了保持紧凑,我选择不按照最初的要求放入两个列表中;由于命令最初是如何吐出输出的。
解决方案
var3=$(paste -d " " -- <(echo "$var1") <(echo "$var2"))
将-d " "
分隔符设置为空格而不是制表符。
推荐阅读
- flutter - 颤振改变底部导航栏高度
- suse - 如何在 SLES 12 上安装 podman
- r - 使用 ggplot2 基于两个因子变量(在 x 轴上)对箱线图进行排序
- nestjs - 如何使用 nginx 在数字海洋中运行nestjs?
- python - pytorch 中是否有 tfagents 的替代品
- windows - 如何以编程方式更改地理位置 Windows10?
- php - 警告:无法修改标头信息 php 中的错误
- composer-php - PHP Composer 打印帮助消息而不是运行命令
- flutter - 如何使用客户类型适配器(Hive/Flutter)?
- angular - 如何在没有 jquery 的情况下在 Angualr 中使用 Gridstack