我有一个wpa_supplicant.conf
文件(WiFi开发人员可能熟悉它)。我想在它的开头将可变数量的行复制到另一个文件。每个wpa_supplicant都具有以下格式:
ctrl_interface=wlan0
update_config=1
device_type=0-00000000-0
network={
..
在前几行后network={..
部分开始,但它上面的行数是可变的。我不知道之前可能有多少行。有没有办法使用shell脚本将network{..
之前的所有部分复制到另一个文件?
答案 0 :(得分:2)
这是awk
的经典用例:
awk '{ if ($0 ~ /network=\{/) { exit } print }' wpa_supplicant.conf > /some/file
复制本身很简单,只需通过简单的重定向>
即可完成。 注意,这将覆盖/some/file
。如果您想要附加到文件而不是覆盖它,请使用>>
。
更有趣的是第一部分,它由一个awk
脚本组成,该脚本逐行读取并打印wpa_supplicant.conf
,并在一行与正则表达式network=\{
匹配时立即停止。
我不打算详细解释这个脚本是如何工作的 - 如果你不熟悉awk
,你应该阅读它,因为当你不得不做这些事情时它经常会派上用场在时间限制下。