在shell腳本中使用awk命令,
如:
filename=$1 cat $filename | awk -F"," '{$1="";print $0}' #刪除輸入的文檔中逗號分隔的第一列,但awk中的$1會使用腳本的參數$1,這里是文檔的名字,執行錯誤
解決方法:
腳本中awk用到自身的內置參數時,采用\進行轉義
上面的代碼改為:
filename=$1 cat $filename | awk -F"," '{\$1="";print $0}' #刪除輸入的文檔中逗號分隔的第一列
參考:https://mwenda.game234.com/q/26342294.html
補充:
使用sed
如:
sed -i '/keyword/s/=.*/=${value}/g' a.txt #將a.txt中包含keyword的行中等號后面的數據替換為value變量值,如果使用單引號,會直接替換成"=${value}"
需要使用雙引號:
sed -i "/keyword/s/=.*/=${value}/g" a.txt