簡體   English   中英

Awk命令解析grep

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM