加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash脚本“连接”多行变量

发布时间:2020-12-16 01:48:42 所属栏目:安全 来源:网络整理
导读:在bash脚本中,我有三个包含多行相等长度的变量. 例如: $a onetwothree$bdogcowfish$cblueredgreen 我以什么方式将输出回显为类似的格式: onedogbluetwocowredthreefishgreen 我尝试了循环遍历每个变量并回显每一行的for循环,但没有得到所需的结果.有什么建
在bash脚本中,我有三个包含多行相等长度的变量.

例如:

$a 
one
two
three

$b
dog
cow
fish

$c
blue
red
green

我以什么方式将输出回显为类似的格式:

onedogblue
twocowred
threefishgreen

我尝试了循环遍历每个变量并回显每一行的for循环,但没有得到所需的结果.有什么建议?

编辑更准确
所以我的脚本将以文本文件作为参数运行(./script.sh textfile)我有三个变量与此变量具有相似的内容:

#!/bin/sh
x=`awk 'NR>1{print $1}' $1 | tr '[:upper:]' '[:lower:]'`

我正在从命令参数中操作相同的文本文件以获取文件的不同部分.最终希望以“$x”:“$y”“$z”将它们“粘贴”在一起.我知道可能有更合理的方法将文本文件处理成所需的格式,但我想找到是否存在是这种方式以上面列出的方式格式化它.

解决方法

粘贴是你的朋友:

$paste -d' ' <(echo "$a") <(echo "$b") <(echo "$c")
one dog blue
two cow red
three fish green

注意$a是通过a = $(cat a)得到的,文件a包含你提供的行.这同样适用于$b和$c.此外,重要的是要看到我正在回显“$a”,并在变量周围加上引号,以便保留格式.否则,新行将不会出现.

paste不允许-d”(即空分隔符),所以如果你想删除你可以管道的空格,例如tr:

$paste -d' ' <(echo "$a") <(echo "$b") <(echo "$c") | tr -d ' '
onedogblue
twocowred
threefishgreen

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读