我正在尝试使用wlan0
接口编写使用用户创建的MAC地址的脚本。
为了测试,我创建了一个名为testFile.txt
的文件,它是/etc/network/interfaces
的副本。如果在wlan0
之后有接口,我就无法使用echo "$var" >> testFile.txt
,因为这只会将文本添加到最后。
我能够找到wlan0
界面文本的结尾,但我不知道如何插入那里。以下是我目前的情况:
#!/bin/bash
echo "Enter MAC Address"
read var
log=$(cat testFile.txt | grep -o "wlan0.*" | grep -o dhcp)
echo $log
echo $log
打印dhcp
。
我尝试将| echo "hwaddress ether $var" >> testFile.txt
添加到$log
,但仍然会附加到文件的末尾。
如何在$log
之后直接插入?
答案 0 :(得分:2)
# Insert hwaddress line into /etc/network/interfaces.
read -p "Enter MAC Address: "
sudo sed -i.bak "/iface wlan0/a\ hwaddress $REPLY" /etc/network/interfaces
# Replace existing hwaddress line in /etc/network/interfaces.
read -p "Enter MAC Address: "
sudo sed -ri.bak "s/(hwaddress).*/\1 $REPLY/"
答案 1 :(得分:1)
您可能希望使用sed
插入MAC地址。如果你想在wlan0的行尾插入它,那就是
sed "s/\(wlan0.*\)/\1 $var/" testFile.txt > testFile.txt.tmp
如果有效,那么
mv testFile.txt.tmp testFile.txt
答案 2 :(得分:-1)
您需要一个不同的工具,例如USED
$ seq 5 | sed '/3/ s/.*/something else/'
1
2
something else
4
5
例如,你可以用'其他'代替'3'的行 - 并且没有限制