Wc

如何跳過輸出的第一行?

  • January 12, 2020

這是問題所在,我想計算一下我在 hpc 中擁有的工作數量,但這不是現成的功能之一。所以我做了這個簡單的腳本

squeue -u user_name | wc -l

wheresqueue列印所有作業,如下所示

> squeue -u user_name
  JOBID PARTITION NAME     USER ST       TIME  NODES NODELIST(REASON)
8840441    theory cteq      fxm PD       0:00      1 (Resources)
8840442    theory cteq      fxm PD       0:00      1 (Priority)
8840443    theory cteq      fxm PD       0:00      1 (Priority)
8840444    theory cteq      fxm PD       0:00      1 (Priority)

這將被輸送到wc併計算行數。但是,第一行不是作業的條目。計數時如何指示wc跳過第一行?還是我應該只取它的輸出wc和減一?

提前致謝!

有很多方法可以做到這一點,我首先想到的是:

squeue -u user_name | tail -n +2 | wc -l

從手冊頁tail

-n, --lines=[+]NUM            output the last NUM lines, instead of the last 10;
                             or use -n +NUM to output starting with line NUM

所以你 -n +2 應該跳過第一行。

你也可以使用tail的排序形式:tail +2

squeue您可以使用- 選項抑制標題行-h。這將消除刪除第一行的需要。

squeue 的手冊頁

-h, --noheader
   Do not print a header on the output.

引用自:https://unix.stackexchange.com/questions/561322