Awk sed:添加带有引号的不寻常标题

Awk sed:添加带有引号的不寻常标题,awk,sed,gawk,Awk,Sed,Gawk,我有以下变量: STR1="CD45RA_naive" STR2="CD45RO_mem" STR3="CD127_Treg" STR4="IL17_Th_stim_MACS" STR5="IL17_Th17_stim" names=($STR1 $STR2 $STR3 $STR4 $STR5) 以及与扩展名为“.bed”的变量同名的文件。 在每个文件中,我需要添加以下标题: track name='enhancer region' description='${names[$i]}'" 我

我有以下变量:

STR1="CD45RA_naive"
STR2="CD45RO_mem"
STR3="CD127_Treg"
STR4="IL17_Th_stim_MACS"
STR5="IL17_Th17_stim"
names=($STR1 $STR2 $STR3 $STR4 $STR5)
以及与扩展名为“.bed”的变量同名的文件。 在每个文件中,我需要添加以下标题:

track name='enhancer region' description='${names[$i]}'"
我的想法如下:

for ((i=0; i<${#names[@]}; i++))
do
    echo "output/annotation/"${names[$i]}".bed"

    sed -i '' "1 i \track name='enhancer region' description='"${names[$i]}"'" "output/annotation/"${names[$i]}".bed"

done

向每个文件(gawk,sed)添加相应头的正确方法是什么?

通常需要插入的行,才能使
i
命令位于其自己的行上。换句话说,您需要在反斜杠后添加一个换行符。例如:

$ cat input
line 1
$ sed -e '1i\
foo' input
foo
line 1
$ sed -e '1i\ foo' input
sed: 1: "1i\ foo
": extra characters after \ at the end of i command

\
后面的换行符有用吗?您使用的是Mac OS X还是BSD?
$ cat input
line 1
$ sed -e '1i\
foo' input
foo
line 1
$ sed -e '1i\ foo' input
sed: 1: "1i\ foo
": extra characters after \ at the end of i command