我需要将grep命令返回的3行添加到文件的第2行。我有以下几点工作,但得到sed将行添加到我的文件一直是令人不安的。任何帮助表示赞赏。
TARGET=$(cat $EPH_DIR | grep -A2 "^$SAT")
返回:
O3B_M001
1 00001U 001001 13134.54166667 .00000000 00000+0 00000+0 0 00018
2 1 0.0399 359.0429 0028976 145.2061 239.3456 5.02804648 06
我需要将这些行添加到文件中...我有这个但是它确实不起作用。
sed -i "2i/^/<"$TARGET"/" "$BASE_DIR/$FILENAME"
我做错了什么?
答案 0 :(得分:2)
awk更容易:
awk -v t="$TARGET" 'NR==2{print t}1' file
答案 1 :(得分:0)
TARGET=$(cat "$EPH_DIR" | grep -A2 "^$SAT" | sed -e 's/$/\\/' -e '$s/\\$//')
sed -i "2i\\
$TARGET
" "$BASE_DIR/$FILENAME"
sed
行中的$(...)
命令在除最后一行之外的每一行的末尾添加一个反斜杠(或者更确切地说,在每行的末尾添加一个反斜杠,然后删除反斜杠最后一行的结尾)。主sed
命令使用2i
在第2行之前的$TARGET
值中插入素材(使用2a
将其放在第2行之后)。
测试。