shell脚本利用awk来遍历字符串元组

一、需求背景

需要处理的文本格式如下:

'yu'zhong'hua'yuan
'yue'jin'lu'kou
'zhong'shi'hua'huan'bei'lu

需要处理生成首字母缩写的格式:

yzhy
yjlk
zshhbl

二、技术思路

从需要处理的文本格式来看,首字母都是位于单引号之后的第一个字符。如果将需要处理的字符串看做一个字符数组来处理的话,就很容易处理了---只需一个for循环来遍历字符串,判断当前字符是不是单引号,若是,则打印下一个字符。用C语言来表示就是:

for(i=0;i<len;i++){
    if (str[i]=='''){
        printf("%c",str[i+1]);
        i++;
    }
    printf("\n")
}

但是shell脚本如何像处理字符数组一样的处理字符串呢?

三、脚本代码

 while read line 
      do
          #指定awk分隔符为"",则awk会将字符串的每个字符都就视为一个独立的元素
          echo ${line} | awk -F "" '{
              for (i=1;i<NF;i++){
                  #注意这里展示了awk中如何引用单引号
                  if ($i=="'\''"){
                       printf("%s",$(i+1))
                       i++
                  }
              }
              printf("\n")
          }'
     done < ${file}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,668评论 0 5
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,518评论 1 19
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 6,276评论 0 10
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,625评论 0 4
  • “彼岸花,花开彼岸,开时看不到叶子,有叶子时看不到花,花叶两不相见,生生相错......” “曼珠婆婆,为什么彼岸...
    Mywings42阅读 387评论 0 1

友情链接更多精彩内容