Sed和Awk - 在配置文件中添加一行

时间:2013-02-22 21:18:08

标签: sed awk

我需要使用sedawk将分区添加到配置文件中。我怎样才能做到这一点 ? 比如说我在分区/test1中有一个路径/dev/sda3,我需要将/dev/sda3添加到配置文件及其名称(第3部分)。让我们假设配置文件是configtest.config 我需要在configtest.config的第三行添加以下内容:

part3  /dev/sda3

如何使用sedawk执行此操作?我知道要阅读分区 即

df /test1 | awk '/^\/dev/ {$1}'

我得到了

/dev/sda3

但我不知道如何将此分区添加到配置文件的第三行及其名称(第3部分)

我想使用sedawk

谢谢!

2 个答案:

答案 0 :(得分:0)

var=$(df /test1 | sed -rn '2s@([^0-9]+([0-9]+)).*@part\2 \1@p')
sed -i "3i $var" configtest.config

答案 1 :(得分:0)

df /test1 |
awk 'NR==FNR{if (/^\/dev/) part=$1; next} 1; FNR==3{print "part3",part}' - configtest.config

如果您想用结果覆盖原始文件,那么它只是:

df /test1 |
awk 'NR==FNR{if (/^\/dev/) part=$1; next} 1; FNR==3{print "part3",part}' - configtest.config > tmp &&
mv tmp configtest.config