我有以下变量:
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
但是我收到错误:
sed: 1: "1 i \track name='enhanc ...": extra characters after \ at the end of i command
为每个文件添加相应的标题(gawk,sed)的正确方法是什么?
答案 0 :(得分:0)
您通常需要为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