我在文本文件中有一行,其中包含分配给变量的项目列表...
ITEMS="$ITEM1 $ITEM2 $ITEM3"
我想编写一个bash脚本,使用sed查找匹配ITEMS的行,并将另一个项目附加到双引号内的列表末尾,这样就会产生......
ITEMS="$ITEM1 $ITEM2 $ITEM3 $ITEM4"
此外,我有一个要添加的项目的数量存储在变量中,假设它是$ number。所以我试图让它添加$ ITEM4 $ number并让它用我分配给该变量的任何东西替换$ number,让我们说它是这种情况下的数字4。我怎么能最好地完成这个?谢谢!
答案 0 :(得分:4)
试试这个:
num=4
sed "/ITEMS=/s/\"$/ \$ITEM${num}\"/"
/re/s/before/after/
,其中re
为正则表达式(如grep
),s///
为替换 \s
是一个空格,*
意味着更多的出现&
代表替换 ^
作为正则表达式的第一个字符表示字符串/行的开头 $
作为正则表达式的最后一个字符表示字符串/行的结尾 答案 1 :(得分:2)
$ cat file
ITEMS="$ITEM1 $ITEM2 $ITEM3"
$ number=4
$ sed "/ITEMS/s/\"$/ \$ITEM$number&/" file
ITEMS="$ITEM1 $ITEM2 $ITEM3 $ITEM4"