我有一個大數據集,想檢查每三行是否有所需的基數。如何確定每三行是否有所需的字母數?
例如:
line 1
line 2
ATTGAC
line 4
line 5
TTCGGATC
line 7
line 8
GGTCAA
所以第6行包含8個鹼基,而不是6.我想我的腳本停止,如果是這種情況。
我有一個大數據集,想檢查每三行是否有所需的基數。如何確定每三行是否有所需的字母數?
例如:
line 1
line 2
ATTGAC
line 4
line 5
TTCGGATC
line 7
line 8
GGTCAA
所以第6行包含8個鹼基,而不是6.我想我的腳本停止,如果是這種情況。
聽起來像是AWK作業:
awk 'NR % 3 == 0 && length($0) != 6 { print "line " NR " is the wrong length"; exit }' file
當記錄數NR
是3的倍數和所述線的長度是不是6,打印消息並退出。從你的例子
輸出(假設所有這些空行不應該在那裏):
$ awk 'NR % 3 == 0 && length($0) != 6 { print "line " NR " is the wrong length"; exit }' file
line 6 is the wrong length
您可以確定在猛砸變量字符數量與$ {#} VarName中。
如果你只想檢查任何一行是否超過6個字符,你可以使用wc -L,它給你最大行長度。爲了只抓取每一行,sed可以用於n〜m(從第n行開始的第m行)。 這一個班輪返回線3,6,9的最大線長,...
sed -n '0~3p' foo | wc -L
Downvote:即使這是擴大到實際顯示如何可以這樣做,處理由線在文件中的行通常應該避免使用殼環。 – tripleee