Shell实用技巧:快速去除字符串中的空格


在整理词库的过程中遇到 一个问题,有些其实是同一个关键词之关有空格的话,无法正常被去重,那么有没有办法能快快速去除这些字符中间的空格呢?经过百度一番,找到一个解决办法,记录一下。

效果如下图所示,图上半部分是示例文本,下半部分就是用shell去掉空格后的效果。其中用到就是下面第3个方法。

查看图片

在UNIX上使用sed命令进行字符串处理中常常遇到的问题就是行首行尾的空格怎么删除。

下面介绍sed是怎样实现的,当然awk同样可以。

1、删除行首空格

sed ‘s/^[ t]*//g'

说明:

第一个/的左边是s表示替换,即将空格替换为空。
第一个/的右边是表示后面的以xx开头。
中括号表示“或”,空格或tab中的任意一种。这是正则表达式的规范。
中括号右边是*,表示一个或多个。

第二个和第三个中间没有东西,表示空

g表示替换原来buffer(缓冲区)中的,sed在处理字符串的时候并不对源文件进行直接处理,先创建一个buffer,但是加g表示对原buffer进行替换

整体的意思是:用空字符去替换一个或多个用空格或tab开头的本体字符串

2、删除行末空格

sed ‘s/[ t]*$//g'

和上面稍微有些不同是前面删除了^符,在后面加上了美元符,这表示以xx结尾的字符串为对象。

但是要注意在KSH中,Tab并不是t而是直接打入一个Tab就可以了。

3、删除所有的空格

sed s/[[:space:]]//g

使用shell脚本找出网站的空页面和404错误页面
早之前记的一个笔记了,之前只是记录了两句代码,放出来的话也是一个低质量的页面,于是设置为了仅自己可见,今晚抽空补充一下。记得当的情景

shell脚本实现批量采集爱站关键词库
shell批量采集爱站关键词库,心血来潮写着玩的,还不完善,先放出来,后期慢慢更新,功能虽然简单,同类工具也很多现成的,但毕竟是自己写出来的

Shell脚本对比两个文本文件找出不同行的2个方法分享
亲自实验过的方法如下:第一种:comm命令法命令如下:comm-3file1file2有一个问题就是,如果两个文件排序不一样的话,会出问题第二种:grep命令法命令