經常使用 ps 命令, 我們可能想單獨獲取乙個程序id, 比如有人會丟給你乙個這樣的命令:
ps -ef | grep 程序名稱關鍵字 | awk ''
執行就可以了, 原理是什麼呢?
我想根據某乙個關鍵字去查詢哪些文件裡有這個關鍵字, 我會寫乙個語句
find . -name 「*.md」 | xargs grep 「關鍵字」
例如這樣的命令:
➜ htmls find
. -name "*.md"
|xargs
grep
"cpp"
./cpp-html/make/@makefile寫法.htm.md::為什麼g++ *.cpp 能直接編譯出可執行檔案還要makefile呢?
grep: ./cpp-html/make/@make: no such file or directory
grep: 命令零基礎教程.html.md: no such file or directory
grep: ./cpp-html/make/@cmake: no such file or directory
grep: tutorial.htm.md: no such file or directory
不會xargs和find命令 的請翻我的歷史部落格, 編號1@linux
. 裡面有介紹
你會發現, 因為有的檔名稱裡面有空格, 所有導致 grep 命令取錯了檔名, 我們需要給檔名左右加上雙引號才能保證可靠.
這個時候, 我們就必須要 awk 命令了.
我們先來看乙個例子,來自參考[1]
.
怎麼解釋呢? begin 表示,從頭開始, 忽略管道輸入,或者不接受輸入的檔名, 所以如果要和其他命令配合,就要把➜ htmls awk
'begin '
你好,簡單教程
begin
去掉
普通的awk命令是awk 命令 檔名
,表示按行處理. 每行按空格切分, $0表示整行, $1表示第乙個切分元素.
如果我們要輸出乙個雙引號, 那麼就要使用轉義符\
, 當然, 還要使用外面的雙引號把本身的雙引號括起來, 表示這個乙個字元, 因為 awk 本身就是乙個語言直譯器, 就類似於 python 一樣的東西.
我們可以看到 awk 命令確實輸出了雙引號.➜ htmls echo 11 > a.txt
➜ htmls awk
'' a.txt
"
在第二個場景中, 我們想使用 grep 命令, 但是使用 grep命令,會
我想根據某乙個關鍵字去查詢哪些文件裡有這個關鍵字, 我會寫乙個語句
find . -name 「*.md」 | xargs grep "關鍵字"
因為有的檔名稱裡面有空格, 所有導致 grep 命令取錯了檔名, 我們需要給檔名左右加上雙引號才能保證可靠.
所以, 我們現在就來改造這個命令.
find -l . -name "*.md" | awk '' | xargs grep 關鍵字
需要說明的是, awk命令的字元拼接, 就是用空格隔開就可以了, 類似於 python中的+
, 在這裡我們使用print a $0 a
.
[1] awk 字串拼接符 - 空格 ( 』 』 )
[2] awk中如何輸出單引號
學習筆記2 Linux
一 常見的三種模式 正常模式 插入模式 命令模式。二 各個模式之間的轉換。正常模式 i或者o 插入模式 esc 正常模式 命令模式 三 幾種命令 wq 儲存並退出文字。q 修改了不想儲存 會強制加!q 沒有修改退出。一 基本介紹 shutdown shuedown h now 立即關機 shutdo...
簡單學習一下dubbo
什麼是dubbo?dubbo是乙個分布式服務框架,致力於提供高效能和透明化的rpc遠端服務治理方案,以及soa服務治理方案。什麼是rpc?什麼是soap?嚴格分離模組,使用介面呼叫服務 dubbo框架?0.服務容器負責啟動,載入和執行服務提供方 1.服務提供方啟動時向註冊中心註冊自己提供的服務 2....
實驗2 Linux下基本程式設計
實驗2 linux下基本程式設計 一 實驗目的 1.掌握vim編譯器 2.掌握gcc編譯器的使用 3.了解fork 程式 二 實驗工具與裝置 1 實驗裝置 計算機 帶cd rom 一台。三 實驗預備知識 1.vim的編輯器 vim有三種模式 命令模式 插入模式 最後行模式。命令模式 剛啟動vim後,...