我有一個包含條目的txt文件,如下生成項目範圍的文件
1
2
3
4
7
8
9
12
14
15
我需要生成範圍如下
1-4
7-9
12-12
14-15
如何實現上述的輸出?
這是我的嘗試:
awk '{q=$1}{f=$1}{print $q} $1!=p+1{print l"-"f}{l=p+1}{p=$1} END{print}' filename
我有一個包含條目的txt文件,如下生成項目範圍的文件
1
2
3
4
7
8
9
12
14
15
我需要生成範圍如下
1-4
7-9
12-12
14-15
如何實現上述的輸出?
這是我的嘗試:
awk '{q=$1}{f=$1}{print $q} $1!=p+1{print l"-"f}{l=p+1}{p=$1} END{print}' filename
我想說...
awk -v OFS=- 'prev+1<$0 {print first ? first : 1,prev; first=$0}
{prev=$0}
END {print first, prev}' file
爲了您指定的文件返回:
$ awk -v OFS=- 'prev+1<$0 {print first ? first : 1,prev; first=$0} {prev=$0} END {print first, prev}' file
1-4
7-9
12-12
14-15
我不會通過你的嘗試awk '{q=$1}{f=$1}{print $q} $1!=p+1{print l"-"f}{l=p+1}{p=$1} END{print}' filename
但我建議你使用更具代表性的變量名稱,以及從一小塊開始,然後讓腳本成長。否則,一旦它不起作用,它就會變成一個你想扔掉的叢林。
嗨,歡迎來到SO。請提供一些代碼以及您嘗試過的內容。謝謝 – acostela
awk'{q = $ 1} {f = $ 1} {print $ q} $ 1!= p + 1 {print l「 - 」f} {l = p + 1} {p = $ 1} END {print} '文件名文件名是txt文件 – Raziel