[英]Awk command to parse grep
我有以下命令,其輸出如下所示,有沒有一種方法可以編寫awk命令來解析當前輸出,而只打印下面“期望的輸出”字段中顯示的命令?
ssh -p 29418 company.com gerrit query --commit-message --files --current-patch-set status:open project:platform/vendor/company/radio branch:master |grep refs
電流輸出:
ref: refs/changes/26/206026/1
ref: refs/changes/25/206025/1
ref: refs/changes/22/206022/1
所需輸出:-
206026
206025
206022
使用awk:
awk -F'/' '{print $(NF-1)}' input
另一件事是,您可以刪除grep並直接使用awk:
ssh -p 29418 company.com gerrit query \
--commit-message --files \
--current-patch-set status:open \
project:platform/vendor/company/radio branch:master |
awk -F'/' '/refs/ {print $(NF-1)}'
我知道您是通過awk
詢問的,但也許可以嘗試使用cut
:
cut -f4 -d"/"
或者只是使用grep
:
$ ... | grep -Po '(?<=ref: refs/changes/[0-9]{2}/)[0-9]+'
206026
206025
206022
grep search_string /directory/filename | cut -f1 -d':'
grep從文件目錄中搜索字符串(即* .c,表示c文件列表)。
grep include */*.c
---除了從所有包含關鍵字“ include”的子目錄中返回c文件列表之外。 此命令輸出還將包含搜索字符串所在的整行。
例如./tmp/readline-6.2:# include < stdlib.h>
這是從grep命令輸出的-可能會有幾行輸出,每行包含“ include”關鍵字。
要僅從此輸出中獲取文件名:
grep include /.c | cut -f1 -d':'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.