shell中遍历字符串
最近系统学习了shell编程.
看到书本里面的一个例子,很屌.之前自己也想过,但是没有得到结果.
相信同学们也猜到这个例子了,就是一行字符串的遍历.在看答案之前,同学们可以自己尝试一下.
这里我总结了三种方式.仅供参考.
1. 首先当然是书本里面的内容:
echo jalsdfjlasjdl | sed "s/[^\n]/&\n/g"
这个例子的输出就是把每个字符都单独成为一行了.
sed语句相信同学们都不陌生.唯一让人疑惑的可能就是&符号的使用.其实结合这个句子,也能够理解了.就是替代前面匹配的最小单位.[^\n]即匹配任何一个不是换行的字符.那么最小的单位自然就是单个字符.
2. 使用字符串拓展.代码如下:
#!/bin/bashstr="love you jingjing"for i in `seq ${#str}`
do
echo ${str:$i-1;1}
done
在这段代码中,使用了大括号的拓展.第一个${#str}.代表str的长度.第二个${str:$i-1:1}意思是取str字符串的第i-1个位置的1个字符.
所以这里的打印自然也是按行打印出每个字符.这里我不知道怎么去解释为什么直接写$i-1都可以.我以为会报错.
3. 使用awk.这个是也不是完全自己的思考.也是通过借鉴资料总结的.
echo "love you jingjing " | awk -F "" '{for (i=1;i<=NF;i++) {print $i}}'
其实如果真的了解awk这段代码也不是很难.难点在于我不知道""两个双引号挨着表示的就是没有分隔符,所谓没有,也就是空就是分隔符.太拗口了
理解了这个点,其它内容也就可以理解了.
是不是开始联想了.拆分成两个或以上怎么弄.
sed的方法:echo alksfdjals | sed "s/[^\n]\{2\}/&\n/g"
字符串拓展的方式:
#!/bin/bash -xalai="love you jingjing"for ((i=0;$i<=${#alai};i=$i+2));
do echo ${alai:$i:2};
done
这段代码里面使用了小括号的特殊用法,即两个小括号连着,可以随意进行运算.我个人美其名曰c语言形式.
总结了这么几个思路用了好几天,而且都不是独立思考的,都或多或少的借鉴了别人或者书本上面的思路.虽然消化了.但是未免有点缺少独立的精神.
同学们在看了这篇文章以后,有没有自己的不同的思路呢
shell中遍历字符串相关推荐
- shell中(字符串截取)
cut是以每一行为一个处理对象的,这种机制和sed是一样的.(关于sed的入门文章将在近期发布) 2 cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢? cut命令主要是接 ...
- (转)Shell中获取字符串长度的七种方法
Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...
- Shell中判断字符串是否为数字的6种方法
Shell中判断字符串是否为数字的6种方法 #!/bin/bash # 方法1 a=1234;echo "$a"|[ -n "`sed -n '/^[0-9][0-9]* ...
- c语言中按照“|”字符串截取,shell中取字符串子串的几种方式 截取substr
echo "123456789" | awk '{print substr($0,5,2)}' 截取 1)awk中函数substr substr(源字符串,开始索引,长度) 开 ...
- linux中特殊符号分割,Shell_Linux Shell 中实现字符串切割的几种方法
我们在shell 脚本编程中,经常需要用到字符串切割,即将字符串切割为一个数组,类似java 中的split 函数,下面对几种常见的方式做一个总结. 参考文章: shell 使用指定的分割符来分割字符 ...
- linux去除字符串的空格符,Shell中去除字符串前后空格的方法
经常碰到的场景,需要去除字符串中的前后的空格.在Shell中不像其他语言有strip()来处理,不过也是可以使用诸如awk等命令来处理. 下面是一个简单示例: [root@localhost ~]# ...
- shELL中的字符串处理(转)
Shell的字符串处理 Shell的字符串处理 1 得到长度 %x="abcd" #方法一 %expr length $x 4 # 方法二 ...
- mysql遍历字符串字符的函数_在MySQL中遍历字符串
一.当字符串之间没有分隔符 遍历字符串时我们需要一个辅助表与原表做连接查询 辅助表中的数字就是表示字符串中各个字符的位置 要求该辅助表必须有足够多的行数保证循环操作的次数 例:把emp表中等于king ...
- Python中遍历字符串和字典
遍历字符串 >>> for x in "ILoveYou":print(x)I L o v e Y o u 遍历字典 遍历所有key两种方式 >>&g ...
最新文章
- CentOS 7最小安装之后应该尽快做好的几件事情
- iptables使用ipt_connlimit限制连接数
- 在ASP.NET MVC5中使用特性路由
- linux下php安装redis,Linux下php安装redis和phpredis库
- 基于.net standard 的动态编译实现
- [蓝桥杯2019初赛]等差数列-数列
- ASP.NET Web API 开篇示例介绍
- C#鼠标点击器-没有测试-转自http://hi.baidu.com/syq_ghost/item/2cc253eb538b72e7fb42ba44
- 【综述】Google团队发布,一文概览Transformer模型的17大高效变种
- 如何用大数据开发套件周期调度机器学习算法
- JavaScript高级程序设计——开篇前言
- P8842 [传智杯 #4 初赛] 小卡与质数2 题解
- [转载] 羽毛球——学打羽毛球 04 正手发高远球
- 如何快速复制文件或文件夹路径?
- 微信小程序 基本认识
- 如何使用计算机远程关闭手机软件,如何使用手机远程遥控电脑关机?手机遥控电脑关机方法图文介绍...
- 删除文件名含有特殊字符的文件
- word中Visio的mathtype公式显示模糊问题
- mybatis postgre timestamp
- 2021年全球与中国先进的CT机行业市场规模及发展前景分析
热门文章
- 10_Linux ARM架构-离线部署 Docker + MongoDB-银河麒麟V10操作系统
- PHP查询附近的人及其距离的实现方法
- 功能性JavaScript中的过滤和链接
- Week8 作业 C - 班长竞选 SCC Kosaraju HDU - 3639
- C/C++语言ODBC连接SqlServer数据库
- PMP : PMP备考心得 (1)
- 样本空间与事件集合,事件间的关系——概率论与数理统计(宋浩)
- Java小游戏-俄罗斯方块
- 每个程序员都应该了解的 CPU 高速缓存 英文原文:Memory part 2: CPU caches
- 分词工具与方法:jieba、spaCy等