使用shell指令碼自動化調參需要對檔案進行修改
最初想到呼叫python進行字串處理,通過正規表示式匹配然後修改,比較麻煩
偶然發現shell其實自帶sed命令可以處理這個問題
#!/bin/bash
sed -i "26c delay = $1" camera.lua
執行上述指令碼./calib.sh 250
即可將camera.lua
配置檔案的第26行改寫為delay = 250
若寫入字串中存在雙引號則需要通過\"
進行轉義
#!/bin/bash
sed -i "2c name = \"mycam\"" camera.lua
sed -n '26p' camera.lua #顯示camera.lua的第26行內容
新增-i
引數可對檔案直接進行修改(慎用)
$ ./calib.sh 1 2 3
$0
在shell指令碼中用於獲取傳入命令的引數,其中$0
為./calib.sh
即命令本身
$1
為第乙個引數,值為1
以此類推$2
$3
Shell指令碼sed命令
1 p命令 命令p用於顯示模式空間的內容。預設情況下,sed把輸入行列印在螢幕上,選項 n用於取消預設的列印操作。當選項 n和命令p同時出現時,sed可列印選定的內容。例子 plain view plain copy 1 sed my p datafile 預設情況下,sed把所有輸入行都列印在標準...
shell指令碼工具之sed命令
sed就是批處理的流編輯器,可以對來自檔案或標準輸入的輸入流進行轉換,sed通常被用作管道中的過濾器.由於sed僅僅對其輸入進行一遍掃瞄,因此比其它互動式編輯器更加高效.檔案內容 root tong1 opt cat sed.txt 1tong 2 cheng 3 hellow 4word wu h...
sed命令例項 shell指令碼入門
什麼是 sed?sed是乙個很好的檔案處理工具,本身是乙個管道命令,主要以行為單位進行處理,可以將資料行進行替換 刪除 新增 選取等特定工作。sed 選項 命令 n,使用安靜 silent 模式。在一般 sed 的用法中,所有來自 stdin 的資料一般都會被列出到終端上。但如果加上 n 引數後,則...