如何在 Bash 中将一个包含两个逗号分隔值的变量插入到一个包含多个逗号分隔值的变量中

如何在 Bash 中将一个包含两个逗号分隔值的变量插入到一个包含多个逗号分隔值的变量中

我有两个变量 i 和 t。我想更改 $i,以便第二和第三个逗号分隔的字段 (30:20,12:45) 被 $t 的值替换以创建一个新变量 $o。

i=whatever,30:20,12:45,whenever,NULL
t=12:20,12:40

因此 $o 应该变成:

echo $o

whatever,12:20,12:40,whenever,NULL

在 Bash 中如何才能最好地完成这一任务?

答案1

使用cut

o="$(echo $i | cut -d, -f1 ),$t,$(echo $i | cut -d, -f4- )"

使用awk

o="$( echo "$i" | \
      awk -v vart="$t" 'BEGIN {  FS="," } { print $1 "," vart "," $4 "," $5 ; } ' 
   )"

相关内容