如何使用awk循环输入字符串中的字符?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (54)

信不信由你,我找不到答案,我认为这是一个非常基本的问题。

在awk中,我如何逐字符循环输入字符串?假设我只是想把它们打印出来。我可以访问的数组吗?还是我需要使用Substr?

就像:

echo "here is a string" | awk '
{ for(i=0; i<[length of input string]; i++) 
    printf [value at index i in array x]; 
}'
提问于
用户回答回答于

可以使用以下方法将字符串转换为数组split:

echo "here is a string" | awk '
{ 
  split($0, chars, "")
  for (i=1; i <= length($0); i++) {
    printf("%s\n", chars[i])
  }
}'
用户回答回答于

将FS重新定义为空。就像这样-

[jaypal:~/Temp] echo "here is a string" | awk -v FS="" '
{for (i=1;i<=NF;i++) printf "Character "i": " $i"\n"}' 
Character 1: h
Character 2: e
Character 3: r
Character 4: e
Character 5:  
Character 6: i
Character 7: s
Character 8:  
Character 9: a
Character 10:  
Character 11: s
Character 12: t
Character 13: r
Character 14: i
Character 15: n
Character 16: g

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    7 粉丝1 提问9 回答
  • 四无君

    0 粉丝0 提问3 回答
  • 拉布拉多拉不多

    1 粉丝0 提问2 回答
  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问2 回答

扫码关注云+社区

领取腾讯云代金券