我的Stress.k文件如下
180.4430
*INCLUDE
$# filename
*STRESS_INITIALIZATION
*END
我希望它像
180.4430
*INCLUDE
$# filename
*STRESS_INITIALIZATION
*/home/hassan/534.k
*END
因为我使用sed如下
a="$(cat flow.k)"
sed -i -e '/*END/i \*/home/hassan/$a.k ' Stress.k
其中flow.k
只有一个数字,如534.k或其他东西。这里sed将行放在END
之前,但它不取a的值,而是使用相同的字母表,但它不理解$a.k
。
还请告诉我如何删除最后一行或带有字符串hassan的行,以便我可以先将其删除,然后在下一步中使用它来输入我需要的行。
如果可能请另外建议。
最好的问候
答案 0 :(得分:1)
bash变量,例如
sed -i -e "/*END/i \*/home/hassan/$a.k " Stress.k
答案 1 :(得分:0)
使用双引号允许扩展变量。
sed -i -e "/*END/i \*/home/hassan/$a.k " Stress.k
要替换字符串,请在阅读文件时执行以下操作:
a=$(sed 's/534/100/' flow.k)
删除一行:
sed '/hassan/d' inputfile
在当前行之后将文件读入流:
sed '/foo/r filename' inputfile