(转)Shell中获取字符串长度的七种方法

Shell中获取字符串长度的七种方法

原文:http://blog.csdn.net/jerry_1126/article/details/51835119

求字符串操作在shell脚本中很常用,下面归纳、汇总了求字符串的几种可能方法:

方法一】:利用${#str}来获取字符串的长度

 

方法二】:利用awk的length方法

备注:

1) 最好用{}来放置变量

2) 也可以用length($0)来统计文件中每行的长度

 

方法三】:利用awk的NF项来获取字符串长度

备注: -F为分隔符,NF为域的个数,即单行字符串的长度

 

方法四】:利用wc的-L参数来获取字符串的长度

备注: -L参数

1) 对多行文件来说,表示打印最长行的长度! 82,表示/etc/passwd文件最长行的长度为82

2) 对单行字符串而言,表示当前行字符串的长度!

 

方法五】:利用wc的-l参数,结合echo -n参数

备注: 

1) -c参数: 统计字符的个数

2) -n参数: 去除"\n"换行符,不去除的话,默认带换行符,字符个数就成了7

 

方法六】:利用expr的length方法

 

 

【方法七】:利用expr的$str : ".*"技巧

备注: .*代表任意字符,即用任意字符来匹配字符串,结果是匹配到6个,即字符串的长度为6

转载于:https://www.cnblogs.com/liujiacai/p/7828568.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下用core和gdb查询出现段错误的地方

有些时候我们在一段C代码的时候,由于对一个非法内存进行了操作,在程序运行的过程中,出现了"段错误"。呵呵,这种问题我想很多人会经常遇到。遇到这种问题是非常无语的,只是提示了"段错误"&#xff…

什么是js的严格模式

设立严格模式的原因: - 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为; - 消除代码运行的一些不安全之处,保证代码运行的安全; - 提高编译器效率,增加运行速度; - 为未来新版本的Javascrip…

代码解说Android Scroller、VelocityTracker

在编写自己定义滑动控件时经常会用到Android触摸机制和Scroller及VelocityTracker。Android Touch系统简单介绍(二):实例具体解释onInterceptTouchEvent与onTouchEvent的调用过程对Android触摸机制须要用到的函数进行了具体的解释。本文主要介绍两个重要…

支付宝支付

1 申请商户平台 2 申请开放平台 3 申请APP支付 4 创建应用 (名称,logo) 5 生成RSA秘钥(公钥,私钥) 6 在应用中配置公钥 7 配置其他内容,包括iOS bundle ID。配置安卓包名,和签名。 获取appid,公…

不可错过的CMS学习笔记

引子 带着问题去学习一个东西,才会有目标感,我先把一直以来自己对CMS的一些疑惑罗列了下,希望这篇学习笔记能解决掉这些疑惑,希望也能对你有所帮助。 CMS出现的初衷、背景和目的? CMS的适用场景? CMS的tr…

相机工作原理

轻轻一按,你的相机就把光子转换为了比特。于是一张相片就保存到了你的 iPhone 里。 让我们假设一下你身处室外,环顾四周。三亿里之外,太阳无时无刻不在发射光子。它们需要花上 8 分钟之久才能到达我们舒适的星球。有一些光子撞击到你周围的物…

CentOS用户和用户组的操作

2019独角兽企业重金招聘Python工程师标准>>> CentOS用户和用户组的操作 長得太帥忚四種檌 关注 2018.05.12 16:40* 字数 312 阅读 115评论 0喜欢 0 用户组的操作 1.添加用户组: groupadd 组名2.修改组名 groupmod -n 新组名 原组名删除用户组groupdel 组…

Linux用户空间与内核地址空间

Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不…

浅谈微信smali注入

作者:郭少雷 搞android搞了几年也没搞出个啥牛逼app出来,眼看时下最火的app微信如此火热,实在想搞搞它,索性就想着给它加点东西进去。 以下内容纯属本人个人爱好,仅限个人学习android用途以及对android的深入了解。 首…

Embeded linux之移植iptables

一、内核环境&#xff1a; linux-3.4.35 -*- Networking support ---> Networking options ---> [*] Network packet filtering framework (Netfilter) ---> IP: Netfilter Configuration ---> <*> IP tables support (required for filtering/masq/NAT)…

Hadoop HIVE

数据仓库工具。构建在hadoop上的数据仓库框架&#xff0c;可以把hadoop下的原始结构化数据变成Hive中的表。&#xff08;主要解决ad-hoc query&#xff0c;即时查询的问题&#xff09; 支持一种与SQL几乎完全相同的语言HQL。除了不支持更新&#xff0c;索引和事务&#xff0c;几…

Xcode9学习笔记67 - 打印查看程序沙箱结构中常用的几个目录

override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.//首先获得应用程序目录的路径&#xff0c;在该目录下有三个文件夹&#xff1a;文档目录、库目录、临时目录以及一个程序包。该目录就是应用程序的…

检测raid类型和磁盘坏道脚本

#!/bin/sh #脚本功能&#xff1a; #安装工具MegaCli64 #Host Information&#xff1a;主机名和ip地址 #Raid Information&#xff1a;raid信息和充电状态 #WARNING Information&#xff1a;MediaErrcount检测坏块和哪块盘 #Disk Information&#xff1a;磁盘信息 #上传MegaC…

《SpringBoot揭秘 快速构建微服务体系》读后感(三)

SpringApplication&#xff1a;SpringBoot程序启动的一站式解决方案 深入探索SpringApplication执行流程 因为书上的版本是1.2的&#xff0c;比较老&#xff0c;这里参考http://blog.csdn.net/zxzzxzzxz123/article/details/69941910 public ConfigurableApplicationContext ru…

装饰器函数

1.装饰器 ​ 装饰器&#xff1a;在不改变原函数的调用方式和函数&#xff0c;额外的增加功能 简单装饰器def timer(func):def inner():print(time.time())func() # 原来的函数return inner ​ timer # func1 timer(func1) def func1():print(func1) 函数带返回值def timer…

6G SDI/12G SDI 基带信号无压缩传输方案介绍

认知数字像素分辨率&#xff1a; 首先从分辨率(数字像素)角度来讲&#xff0c;从标清时代走到高清&#xff0c;从720x576到现在的1920x1080&#xff0c;宽高比从4:3到16:9&#xff0c;这个是我们比较熟悉的&#xff0c;4K实际上是建立在高清基础之上的&#xff0c;我们称之为“…

12.4日团队工作总结

今天团队的主要任务是注重于画图工具的设计&#xff0c;这就意味着我们首要的任务是将画图工具设置出来并可以完整运行&#xff0c;接下来才能顾及之前的改图软件&#xff0c;但今天在设计的过程中&#xff0c;遇到了两者无法无缝结合的问题&#xff0c;目前还没解决。 转载于:…

最短路径——Dijkstra算法以及二叉堆优化(含证明)

一般最短路径算法习惯性的分为两种&#xff1a;单源最短路径算法和全顶点之间最短路径。前者是计算出从一个点出发&#xff0c;到达所有其余可到达顶点的距离。后者是计算出图中所有点之间的路径距离。 单源最短路径 Dijkstra算法 思维 本质上是贪心的思想&#xff0c;声明一个…

linux shmget shmctl

shmgetint shmget(key_t key, size_t size, int flag);key: 标识符的规则size:共享存储段的字节数flag:读写的权限返回值&#xff1a;成功返回共享存储的id&#xff0c;失败返回-1key_t key----------------------------------------------- key标识共享内存的键值: 0/IPC_P…

伯克利开源工具库RLib现已支持大规模多智能体强化学习

AI前线导读&#xff1a;近日&#xff0c;UC伯克利的研究团队RISELab在其Github的项目Ray Rlib 0.6.0中添加了面向多智能体强化学习&#xff08;multi-agent Reinforcement Learning&#xff09;的支持。本文由团队成员Eric Liang首发于RISELab团队主页&#xff0c;AI前线翻译整…