博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux批量处理文件脚本
阅读量:6769 次
发布时间:2019-06-26

本文共 2151 字,大约阅读时间需要 7 分钟。

Linux shell字符串截取与拼接

一 Linux 的字符串截取很有用。有八种方法。

假设有变量 var=http://www.linuxidc.com/123.htm 

1  # 号截取,删除左边字符,保留右边字符。 

echo ${var#*//}

其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符

即删除 http://

结果是 :www.linuxidc.com/123.htm

2  ## 号截取,删除左边字符,保留右边字符。

echo ${var##*/}

##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符

即删除 http://www.linuxidc.com/         

结果是 123.htm

 

3  %号截取,删除右边字符,保留左边字符

echo ${var%/*}

%/* 表示从右边开始,删除第一个 / 号及右边的字符

结果是:http://www.linuxidc.com

4  %% 号截取,删除右边字符,保留左边字符

echo ${var%%/*}

%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符

结果是:http:

5 从左边第几个字符开始,及字符的个数

echo ${var:0:5}

 其中的 0 表示左边第一个字符开始,5 表示字符的总个数。

结果是:http:

6 从左边第几个字符开始,一直到结束。

echo ${var:7}

其中的 7 表示左边第8个字符开始,一直到结束。

结果是 :www.linuxidc.com/123.htm

从右边第几个字符开始,及字符的个数

echo ${var:0-7:3}

其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。

结果是:123

8  从右边第几个字符开始,一直到结束。

echo ${var:0-7}

表示从右边第七个字符开始,一直到结束。

结果是:123.htm

 

 

注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

二  Linux Shell 脚本中字符串的拼接方法

如果想要在变量后面添加一个字符,可以用一下方法:

$value1=home
$value2=${value1}"="
echo $value2
把要添加的字符串变量添加{},并且需要把$放到外面。
这样输出的结果是:home=,也就是说连接成功。
又如:
[root@localhost sh]# var1=/etc/
[root@localhost sh]# var2=yum.repos.d/
[root@localhost sh]# var3=${var1}${var2}
[root@localhost sh]# echo $var3
/etc/yum.repos.d/

判断文件是否存在的shell脚本代码

#!/bin/sh# 判断文件是否存在# link:www.jb51.net# date:2013/2/28myPath="/var/log/httpd/"myFile="/var /log/httpd/access.log"# 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限if [ ! -x "$myPath"]; then  mkdir "$myPath"fi# 这里的-d 参数判断$myPath是否存在if [ ! -d "$myPath"]; then mkdir "$myPath"fi# 这里的-f参数判断$myFile是否存在if [ ! -f "$myFile" ]; then touch "$myFile"fi# 其他参数还有-n,-n是判断一个变量是否是否有值if [ ! -n "$myVar" ]; then echo "$myVar is empty" exit 0fi# 两个变量判断是否相等if [ "$var1" = "$var2" ]; then echo '$var1 eq $var2'else echo '$var1 not eq $var2'fi

一个实例

步骤:

1)遍历Manesh_fasta文件夹

2)将文件夹中的.fasta文件名改为.diso文件并赋予一个变量

3)判断这个.diso文件在Manesh_diso目录中是否存在

若不存在,则执行如下命令

#!/bin/bashfasta_files=`ls /ifs/home/fanchao/Manesh_fasta`for filename in $fasta_filesdodiso_file="${filename%.*}".diso""if [ ! -f "/ifs/home/fanchao/Manesh_diso/$diso_file" ]; then/ifs/home/fanchao/disopred2.43/disopred/rundisopred  /ifs/home/fanchao/Manesh_fasta/$filenamefidone

 bash变量的设定

转载于:https://www.cnblogs.com/chaofn/p/4610753.html

你可能感兴趣的文章
工控项目开发框架介绍
查看>>
Exchange企业实战技巧(23)用户邮箱数据的导入导出
查看>>
用FileZilla Server架设开源FTP服务器:看图入门
查看>>
Silverlight Toolkit预览Part 1:介绍
查看>>
旷视Face++与西交大成立AI联合实验室,郑南宁孙剑再续师徒缘
查看>>
《深入理解计算机系统(修订版)》读感
查看>>
Linux下如何使用虚拟用户增加FTP的安全性
查看>>
为了学习WinCE嵌入式编程,又开始学起了MFC
查看>>
[RHEL5企业级Linux服务攻略]--第2季 Samba服务全攻略
查看>>
JSP和ASP.NET到底谁才是未来的主宰
查看>>
Goldengate双向复制配置
查看>>
CSS魔法堂:盒子模型简介
查看>>
忘记电商 刘强东和京东的“如意算盘”
查看>>
Oracle多实例的配置方法
查看>>
浅谈hibernate+入门实例
查看>>
Linux on Power 上的调试工具和技术
查看>>
Android系统移植与调试之------->如何添加一个adb wifi无线调试的功能【开发者选项】-【Wifi调试】...
查看>>
linux 防火墙操作
查看>>
Ubuntu中修改grub重启出现 Memtest86 解决方法
查看>>
VS 2012 标配 Asp.net MVC 和 Entity Framework - mybatisnet 可能就显得路子野 了
查看>>