我正在尝试确定字符串中的所有字符在AWK中是否相同。这是我目前的代码,但必须有一个更简洁的方法,不是吗?
same = 1;
for (i = 1; i < length(s); i++)
if (substr(s, i, 1) != substr(s, i+1, 1))
same = 0;
答案 0 :(得分:0)
您可以使用regular expression匹配操作:
Pattern="^" substr(s, 1, 1) "+$"
if (s ~ Pattern) print "match!"
匹配模式显示:“匹配任何由一个或多个字符组成的字符串,该字符从头到尾等于s的第一个字符”。
答案 1 :(得分:0)
另一种awk
方法
awk '{line=$0;
print length(line)==gsub(substr(line,1,1),"",line)}'
答案 2 :(得分:0)
所有相同的角色:
awk '$0 !~ "[^"substr($0,1,1)"]"'
awk '$0 ~ "^"substr($0,1,1)"+$"'
至少有一个不同的角色:
awk '$0 ~ "[^"substr($0,1,1)"]"'
awk '$0 !~ "^"substr($0,1,1)"+$"'