我有两个变量 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 ; } '
)"