0

I am using the following ssh command to get a list of ids. Now I want to

  1. get only ids greater than a given number in the list of ids; let's say "231219" in this case. How can I incorporate that?

  2. I have a local file "ids_ignore.txt"; anyid we put in this list should be ignored by the command..

Can awk or cut do the above?

ssh -p 29418 company.com gerrit query --commit-message --files --current-patch-set \
    status:open project:platform/code branch:master |
grep refs | cut -f4 -d'/'

OUTPUT:-

231222
231221
231220
231219
230084
229092
228673
228635
227877
227759
226138
226118
225817
225815
225246
223554
223527
223452
223447
226137
4

2 に答える 2

1
... | awk '$1 > max' max=8888 | grep -v -F -f ids_ignore.txt

または、すべて awk で実行する場合は、次のようにします。

 ... | awk 'NR==FNR{ no[$1]++ } 
        NR!=FNR && $1 > max && ! no[$1]' max=NNN ids_ignore.txt -
于 2013-01-25T23:58:57.477 に答える
0

cut入力フィールドの数値比較はできません。単純なフィールド抽出ツールです。awkgrep と cut の作業を行うことができます:

ssh -p 29418 company.com gerrit ... |
awk -F/ -v min=231219 '
    NR == FNR {ignore[$1]; next} 
    /refs/ && $4>min && !($4 in ignore) {print $4}
' ids_ignore.txt -

awk コマンドの最後の末尾-は重要です。これは、ids_ignore ファイルを読み取った後に stdin から読み取るように awk に指示します。

于 2013-01-26T00:56:13.957 に答える