[英]awk regex last occurence of character/pattern
這里不需要使用任何正則表達式,因為awk允許您使用分隔符分割文件。
使用后:
作為輸入字段分隔符從總行長度中減去最后一個字段的長度,得到正確的索引,如下所示:
awk -F: '{print length($0) - length($NF)}' <<< '12:45:78'
6
更多例子:
awk -F: '{print length($0) - length($NF)}' <<< '12:45:78111:123'
12
awk -F: '{print length($0) - length($NF)}' <<< '12:45:78:123'
9
awk -F: '{print length($0) - length($NF)}' <<< '12:45'
3
awk -F: '{print length($0) - length($NF)}' <<< '12:'
3
你需要使用
/:[^:]*$/
在此, [^:]*
(一個[^...]
是一個否定的括號表達式 )將匹配比其他 0+字符:
,所以,只有最后:
與所述第一匹配:
。
注意這個想法幾乎適合你,唯一的區別是量詞:如果你使用+
與[^:]
,你將不匹配:
在輸入字符串的最后。 因此, *
是您想要的量詞。
圖案細節 :
:
- a :
緊隨其后...... [^:]*
- 除以下之外的任何0+字符:
$
- 結束字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.