簡體   English   中英

awk - if else語句的問題

[英]awk - Issues with if else statements

file.txt成為以下文件

1
2
3
5
6
7
15
16
17
19
20
23
24

我試圖編寫一個awk命令來打印缺少的數字范圍。 當范圍僅包含一個數字時,應單獨打印此數字。 預期的產出是

4
8-14
18
21-22

這篇文章幾乎完成了我的工作與一個班輪

awk '$1!=p+1{print p+1"-"$1-1}{p=$1}' file.txt

4-4
8-14
18-18
21-22

我試着修改它

awk 'if ($1!=p+1){if (p+1!=$1-1) {print p+1"-"$1-1} else {print p+1} }{p=$1}' file.txt

但它沒有按預期工作。 我似乎誤解了if-else語法。 我究竟做錯了什么?

您可以使用:

awk '$1 != p+1 {print p+1 ($1-1 > p+1 ? "-" $1-1 : "")} {p=$1}' file

4
8-14
18
21-22

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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