Shell中去除字符串前后空格的方法
经常碰到的场景,需要去除字符串中的前后的空格。在Shell中不像其他语言有strip()来处理,不过也是可以使用诸如awk等命令来处理。
下面是一个简单示例:
[root@localhost ~]# echo ' A B C ' | awk '{gsub(/^\s+|\s+$/, "");print}'
- ^\s+ 匹配行首一个或多个空格
- \s+$ 匹配行末一个或多个空格
- ^\s+|\s+$ 同时匹配行首或者行末的空格
如果不用awk命令,也可以使用eval命令来达到相同的目的
[root@local ~]# echo " A BC " A BC [root@local ~]# eval echo " A BC " A BC
或者
[root@linux ~]# echo ' A BC ' | python -c "s=raw_input();print(s.strip())" A BC
或者
[root@linux ~]# s=`echo " A BC "` [root@linux ~]# echo $s A BC
或者
[root@linux ~]# echo ' A BC ' | sed -e 's/^[ ]*//g' | sed -e 's/[ ]*$//g' A BC
或者
[root@linux ~]# echo " A BC " | awk '$1=$1' A BC
或者
[root@linux ~]# echo " A BC " | sed -r 's/^[ \t]+(.*)[ \t]+$//g' A BC
或者
[root@linux ~]# echo ' A BC ' | awk '{sub(/^ */, "");sub(/ *$/, "")}1' A BC
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
Shell脚本从文件中逐行读取内容的几种方法实例
从文件逐行读取数据的方法有两种,一种是在while循环或until循环中使用read命令,通过文件描述符一行一行的读取文件内容:另一种是在for循环中使用cat <filename>来读取文件的内容. 1.使用for循环从文件中逐行读取内容:在默认情况现下此方法是逐个单词的读取文件内容,因为使用这种方法读取文件时,他使用环境变量IFS的值作为分隔符,由于IFS的默认值是"<space/空格>""<tab/制表符>""&l
-
Shell中统计字符串中单词的个数的几种方法
Shell中求字符串中单词的个数的几种方法 方法一: [linux@host ~]# echo 'one two three four five' | wc -w 5 方法二: [linux@host ~]# echo 'one two three four five' | awk '{print NF}' 5 方法三: [linux@host ~]# s='one two three four five' [linux@host ~]# set ${s} [linux@host ~]# ech
-
Shell脚本中使用getopts处理多命令行选项
在Linux系统中,许多命令都提供了选项,使用不同的选项就会得到不通的执行结果 例如:ls命令,ls命令提供了多个选项:-l.-a.-A.-h.-i等等,每个选项具有不同的功能,我们自己写脚本时也可以定义选项,提示用户如何使用,本文介绍如何使用getopts命令来处理命令选项. 1.getopts命令的如何使用: 用getopts命令获取到脚本选项后,getopts会将获取到的选项所对应的参数(选项对应的参数,并不是选项本身,有的命令选项后面是需要跟一个参数的,例如tcpdump 的-w选项,后
-
Shell脚本中awk指令的用法
语法格式:awk [选项] '指令' 操作文件 常用选项:-F 指定分隔符,分隔符用""引起来 -v:var=value在awk程序开始之前指定一个值valu给变量var,这些变量值用于awk程序的BEGIN快 -f:后面跟一个保存了awk程序的文件,代替在命令行指定awk程序 实例1:在命令行直接输入awk指令 awk '{print}' 1.txt #逐行读取文件1.txt内容并打印 awk '{print $0}' 1.txt #逐行读取文件内容,并打印该行,$0保存的是当
-
Shell脚本判断用户的输入内容
1.脚本功能:提示客户属于一串数字,并判断用户是否进行了输入,输入的是否为数字 #!/bin/bash read -p "enter a number: " number #提示用户输入数字 if [ -z $number ];then #判断用户是否输入,如果未输入则打印error echo "Error" exit else jieguo=`echo "$number*1" | bc ` #把用户的输入值和1相乘,交给bc做运算 if [ $
-
一条命令让你明白shell中read命令的常用参数
我们知道,在Shell中接收传入的参数有两种方式.一种是通过脚本进行参数传递,另外一种是通过read来接收传入的参数.通过脚本来传递参数的简单示例如下: # 通过脚本来传递,这里$0指脚本名,$1为第一个参数,$2为第二个参数 [root@host ~]# ./script.sh 1 2 Total = 3 [root@host ~]# vim script.sh #!/bin/bash function add() { total=$(expr $1 + $2) echo -e "Total
-
Shell中整数计算的几种方式
在Shell中可以使用下列方式来做整数的计算(+,-,*,/) 方式一: linux:~ # A=1 linux:~ # B=2 linux:~ # C=$(($A+$B)) linux:~ # echo $C 3 方式二: linux:~ # A=1 linux:~ # B=2 linux:~ # C=$[$A + $B] linux:~ # echo $C 3 方式三: linux:~ # A=1 linux:~ # B=2 linux:~ # C=`expr $A + $B` linux:
-
Shell脚本用for循环遍历参数的方法技巧
1.当一个脚本需要传入的参数较多时,可以使用for循环进行参数遍历 示例: #!/bin/bash number=65 #定义一个退出值 index=1 #定义一个计数器 if [ -z "$1" ];then #对用户输入的参数做判断,如果未输入参数则返回脚本的用法并退出,退出值65 echo "Usage:$0 + canshu" exit $number fi echo "listing args with \$*:" #在屏幕输入,在$*
-
Shell脚本中管道的几种使用实例讲解
管道经常用于拼接命令,通过管道可以执行一些复杂的数据处理操作.以下为在shell中使用管道处理数据的的几个实例 示例1:生成一个8位的随机密码 tr -dc A-Za-z0-9_ </dev/urandom | head -c 8 | xargs 示例2:查看系统中所有的用户名称,并按字母排序 awk -F: '{print $1}' /etc/passwd | sort 示例3:列出当前用户使用最多的5个命令(print的列数根据实际情况而定) history | awk '{print $2
-
Shell中字符串排序的几种方法
[方法一]按ASCII正向排序 备注: 1) tr将子字符串中的空白转换为换行符,再用sort排序 2) sort无参的话,默认按ASCII正向排序 [方法二]按ASCII正向排序 备注: 1) -r参数: 按ASCII码反向排序 2) 在使用sort,uniq等组合命令时候 [方法三]按自然数顺序排序 备注: 1) -n参数: 按自然数的顺序来排序 2) 如果不加-n参数的话,默认是按1,2,3..9的顺序排列,即使101也是排在2之前 总结 以上就是这篇文章的全部内容了,希望本文的内容对
随机推荐
- 超常用的PHP正则表达式收集整理
- Struts2中Action中是否需要实现Execute方法
- Python搭建HTTP服务器和FTP服务器
- C#编程获取各种电脑硬件信息的方法示例
- MySQL查看和修改字符编码的实现方法
- mYsql日期和时间函数不求人
- Windows下使用Cygwin编译MySQL客户端
- javascript cookie的简单应用
- jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
- 用户代理字符串userAgent可实现的四个识别
- 用nodejs实现PHP的print_r函数代码
- 基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
- java时间 java.util.Calendar深入分析
- Struts2 漏洞分析及如何提前预防
- Android UI中TextView的使用方法
- Java编程一道多线程问题实例代码
- 自定义一个简单的JDBC连接池实现方法
- python psutil库安装教程
- Vue中的情侣属性$dispatch和$broadcast详解
- axios封装,使用拦截器统一处理接口,超详细的教程(推荐)