我有一些bash变量,我想用一个只有这些变量值的文本文件替换一些行.
举一个人为的例子.
假设我有一个名为test的文件(数字表示行号,而不是文件中的文本.)
我想用线替换第3行45 56.在我的bash文件中,我存储了XL = 45和XU = 56,我试过了
XL=45
XU=56
sed -i '3s/.*/ $XL $XU/' test
Run Code Online (Sandbox Code Playgroud)
然而,这将使用$ XL和$ XU替换第三行而不是实际值.我该怎么做呢?
我知道显而易见的解决方案是将sed命令中的$ XL和$ XU替换为实际值,但我想在我的长文本文件中替换许多这样的行.所以我想在顶部定义XL和XU作为变量,所以我不必在任何地方改变我的值.
一个awk版本
$ cat file
Mary
Had
A Little
Lamb
$ awk 'NR==3 {$0=l}1' l="$XL $XU" file
Mary
Had
45 56
Lamb
Run Code Online (Sandbox Code Playgroud)