awk小技巧之執行shell命令
方法一:system函式
ip add | grep enp0s8 | grep inet | awk '{print $2}' | awk -F"/" '{printf $1" "}{cmd="hostname";system(cmd)}
[root@rac1 ~]# ls | awk '{printf $NF" "}{cmd="hostname";system(cmd)}
方法二:使用變數(獲取變數的時候已經執行命令)
ls |awk '{print i$0}' i=
`pwd`'/'
或
[root@rac1 ~]# ls -a |awk '{print i$0}' i=
"`pwd`/"
注意:這裡的雙引號不可以用單引號替換,單引號內強制為字串-不執行引號內的命令。
[root@rac1 ~]# ls -a |awk -v i="`pwd`/" '{print i$0}'
方法三:把命令傳遞給bash
[root@rac1 ~]# awk 'BEGIN{print "echo cange"|"bash"}' cang
[root@rac1 ~]# ls -lh | awk '{print "echo cange"|"bash"}' cange cange cange cange cange cang
方法三的內容延伸:執行多重命令
[root@rac1 ~]# ls -lh | awk '{print "echo cange `date +%Y-%m-%d`"}' | bash cange 2021-08-11 cange 2021-08-11 cange 2021-08-11 cange 2021-08-11 cange 2021-08-11 cange 2021-08-1
[root@rac1 ~]# ls -lh | awk '{print "echo cange $(date +%Y-%m-%d)"}'| bash cange 2021-08-11 cange 2021-08-11 cange 2021-08-11 cange 2021-08-11 cange 2021-08-11 cange 2021-08-11 cange 2021-08-11 cange 2021-08-11
結合輸出引號和shell命令:
[grid@rac1 ~]$ find $ORACLE_BASE/diag/crs/`hostname`/crs/trace/ -ctime -1 | awk '{print "echo "$0" ` stat -c""\"" "%X %Y %Z" "\""" "$0"`"}' | head -n 10 | bash /u01/app/grid/diag/crs/rac1/crs/trace/ 1628211140 1628211123 1628211123 /u01/app/grid/diag/crs/rac1/crs/trace/ocssd.trc 1628153326 1628211421 1628211421 /u01/app/grid/diag/crs/rac1/crs/trace/ocssd.trm 1628153326 1628211421 1628211421 /u01/app/grid/diag/crs/rac1/crs/trace/octssd.trc 1628099149 1628211410 1628211410 /u01/app/grid/diag/crs/rac1/crs/trace/octssd.trm 1628099149 1628211410 1628211410 /u01/app/grid/diag/crs/rac1/crs/trace/ohasd_orarootagent_root.trc 1628206771 1628211421 1628211421 /u01/app/grid/diag/crs/rac1/crs/trace/crsd_oraagent_grid.trc 1628044975 1628211421 1628211421 /u01/app/grid/diag/crs/rac1/crs/trace/ohasd.trc 1628202286 1628211419 1628211419 /u01/app/grid/diag/crs/rac1/crs/trace/crsd.trc 1628115223 1628211414 1628211414 /u01/app/grid/diag/crs/rac1/crs/trace/crsd_oraagent_oracle.trc 1627639317 1628211417 162821141
##%分號可以放在雙引號內正常輸出,
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28572479/viewspace-2786529/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python裡執行shell命令或cmd命令Python
- 【Mongo】shell命令列模式執行mongo命令Go命令列模式
- Linux命令之grep/sed/awk等行轉列Linux
- shell執行小數運算
- shell指令碼linux命令連續執行指令碼Linux
- shell指令碼命令 執行python檔案&python命令列執行python程式碼指令碼Python命令列
- [20210618]記錄bash shell執行的命令.txt
- crontab異常:shell下可以執行命令,執行crontab卻報錯
- awk命令
- 在 Ruby 中執行 Shell 命令的 6 種方法
- Jenkins踩坑之旅:nohup後臺執行shell命令Jenkins
- 六種用ruby呼叫執行shell命令的方法
- 007 Linux 命令三劍客之-awkLinux
- 強大好用的shell之shell命令
- 通過ICMP協議反彈SHELL並執行命令協議
- java 執行shell命令及日誌收集避坑指南Java
- IDEA小技巧:Markdown裡的命令列可以直接執行了Idea命令列
- Linux小技巧scp命令Linux
- 提高Python執行效率的5個小技巧!Python
- 如何從 Vim 中訪問 shell 或者執行外部命令
- pwn雜項之linux命令執行Linux
- Java審計之命令執行篇Java
- 程式猿必知必會Linux命令之awkLinux
- linux的awk命令Linux
- 執行shell指令碼指令碼
- shell後臺執行
- 程式設計小技巧之 Linux 文字處理命令(二)程式設計Linux
- shell 命令在終端可以執行成功,為什麼放在 groovy 指令碼中不執行?指令碼
- Linux命令技巧之30個必會的命令技巧Linux
- Node.js 執行 shell 命令 主程式獲取返回值Node.js
- awk 技巧之輸出單引號和雙引號
- 寶付揭秘Linux支付命令操作之grep、sed、awkLinux
- Linux:“awk”命令的妙用Linux
- awk命令使用例項
- Linux awk 命令詳解Linux
- Shell 技巧
- mumu模擬器 adb shell 登入後執行命令 Inappropriate ioctl for deviceAPPdev
- 聊聊保證執行緒安全的10個小技巧執行緒