shell 字符串匹配
来源:互联网 发布:2017网络大电影排行榜 编辑:程序博客网 时间:2024/05/21 19:23
问题:shell 如何判断某个文件名以某个字符开头~
解决:
#var="cn get the length of me"
#$1: parameter 1 传要判断的文件名字
var=$1
isCN=false
#${var:0:2} 取var子串,从第0个字符起,取2两个字符
if [[ ${var:0:2} -eq "cn" ]]
then
echo sub is chinese ${var:0:2}
else
echo sub is english ${var:0:2}
fi
#function :判断
ISCN()
{
if [[ ${var:0:2} -eq "cn" ]]
then
echo "in ISCN"
isCN=true
fi
}
#执行function
ISCN
echo the last isCN $isCN
=================================================================
一,shell取子串常用:
1)
二,对字符串的处理
包括:截取,连接,匹配,替换,翻转... ...
字符串的处理:
1,截取
方法一:
echo $a|awk '{print substr( ,1,8)}'
substr是awk中的一个子函数,对第一个参数的进行截取,从第一个字符开始,共截取8个字符,如果不够就从第二个字符中补
方法二
echo $a|cut -b2-8
cut:对标准输入的字符串进行处理
cut -bn-m:以byte为单位,从第n个byte开始,取m个
cut -bn,m:以byte为单位,截取第n,m个byte
cut -b-n,m:以byte为单位,截取1-n,和第m个
-c:以charactor为单位
-d:指定分隔符,默认为tab
-s:使标准输入中没有delimeter
cut -f1:截取第1个域
方法三
a=123456
echo ${string:1:2}
方法四
使用sed截取字符串的最后两位
echo $test |sed 's//(.*/)/(../)$//'
截取字符串的前2位
echo $test |sed 's/^/(../)/(.*/)//'
欢迎访问007电脑资讯
2,比较
好像没有什么可以比较的
3,连接
$a$b
或者
$string
4,翻转
方法一:
使用rev命令
方法二:
编写脚本实现
#!/usr/bin/awk -f
################################################################
# Description : duplicate rev in awk
################################################################
{
revline = ""
for (i=1;i<=length;i++)
{
revline = substr(,i,1) revline
}
}
END{print revline}
5,匹配
grep
egrep
fgrep
6,排序
7,替换
bash中:
%x=abcdabcd
%echo $ # 只替换一个
bbcdabcd
%echo $ # 替换所有
bbcdbbcd
sh中:
??
如何替换/
使用sed
替换所有匹配
echo $test |sed 's/xx/yy'
替换单个匹配
??
8,得到字符串的长度:
bash当中
$
或者
expr "$VAR" : '.*'
9,判断字符串是否为数字
10,得到字符串中某个字符的重复次数
echo $a |tr "x" "/n" |wc -l
得到的结果需要减去1
或者 echo $a |awk -F"x" '{print NF-1}'
11,得到字符串中某个string的重复次数 007电脑资讯
12,将一批文件中的所有string替换
for i in file_list
do
vi $i <<-!
:g/xxxx/s//XXXX/g
:wq
!
done
13,如何将字符串内每两个字符中间插入一个字符
使用sed
echo $test |sed 's/../&[insert char]/g'
解决:
#var="cn get the length of me"
#$1: parameter 1 传要判断的文件名字
var=$1
isCN=false
#${var:0:2} 取var子串,从第0个字符起,取2两个字符
if [[ ${var:0:2} -eq "cn" ]]
then
echo sub is chinese ${var:0:2}
else
echo sub is english ${var:0:2}
fi
#function :判断
ISCN()
{
if [[ ${var:0:2} -eq "cn" ]]
then
echo "in ISCN"
isCN=true
fi
}
#执行function
ISCN
echo the last isCN $isCN
=================================================================
一,shell取子串常用:
1)
echo ${string:1:2}
2)echo $string |cut -c 2-3 (取string 的第2到第3个字符)
二,对字符串的处理
包括:截取,连接,匹配,替换,翻转... ...
字符串的处理:
1,截取
方法一:
echo $a|awk '{print substr( ,1,8)}'
substr是awk中的一个子函数,对第一个参数的进行截取,从第一个字符开始,共截取8个字符,如果不够就从第二个字符中补
方法二
echo $a|cut -b2-8
cut:对标准输入的字符串进行处理
cut -bn-m:以byte为单位,从第n个byte开始,取m个
cut -bn,m:以byte为单位,截取第n,m个byte
cut -b-n,m:以byte为单位,截取1-n,和第m个
-c:以charactor为单位
-d:指定分隔符,默认为tab
-s:使标准输入中没有delimeter
cut -f1:截取第1个域
方法三
a=123456
echo ${string:1:2}
方法四
使用sed截取字符串的最后两位
echo $test |sed 's//(.*/)/(../)$//'
截取字符串的前2位
echo $test |sed 's/^/(../)/(.*/)//'
欢迎访问007电脑资讯
2,比较
好像没有什么可以比较的
3,连接
$a$b
或者
$string
4,翻转
方法一:
使用rev命令
方法二:
编写脚本实现
#!/usr/bin/awk -f
################################################################
# Description : duplicate rev in awk
################################################################
{
revline = ""
for (i=1;i<=length;i++)
{
revline = substr(,i,1) revline
}
}
END{print revline}
5,匹配
grep
egrep
fgrep
6,排序
7,替换
bash中:
%x=abcdabcd
%echo $ # 只替换一个
bbcdabcd
%echo $ # 替换所有
bbcdbbcd
sh中:
??
如何替换/
使用sed
替换所有匹配
echo $test |sed 's/xx/yy'
替换单个匹配
??
8,得到字符串的长度:
bash当中
$
或者
expr "$VAR" : '.*'
9,判断字符串是否为数字
10,得到字符串中某个字符的重复次数
echo $a |tr "x" "/n" |wc -l
得到的结果需要减去1
或者 echo $a |awk -F"x" '{print NF-1}'
11,得到字符串中某个string的重复次数 007电脑资讯
12,将一批文件中的所有string替换
for i in file_list
do
vi $i <<-!
:g/xxxx/s//XXXX/g
:wq
!
done
13,如何将字符串内每两个字符中间插入一个字符
使用sed
echo $test |sed 's/../&[insert char]/g'
- shell 字符串匹配
- 【shell】expr字符串匹配
- Shell:字符串模式匹配# %
- Linux shell 字符串匹配
- Shell字符串匹配
- shell字符串匹配
- shell脚本的字符串匹配
- shell脚本 字符串子串匹配
- [Linux]:Bash Shell的字符串匹配方法
- Linux shell 字符串模式匹配运算符
- Shell基于模式匹配的字符串操作
- [00103]用Shell通配符匹配字符串
- shell 匹配某行字符串,并输出此行其他字符串
- linux shell 字符串操作(长度,查找,替换,匹配)详解
- linux shell 字符串操作(长度,查找,替换,匹配)详解
- windows批处理(shell)多行字符串匹配
- shell判断一个字符串是否匹配某个模式
- shell 匹配字符串 (eg.获得配置文件的值 )
- .net风格控件!
- 反射之反思
- NOCOPY之使用限制
- Spring Security2.0的自带DEMO浅析
- (转)C++的static关键字
- shell 字符串匹配
- CString 操作指南
- Google C++ Test Framework (一)通过ASSERT和EXPECT宏完成的测试
- C++中const用法总结
- 纯CSS实现的三级下拉菜单
- 使用bulk collect实现cursor 批量fetch
- C#中获取日期所在年的周数
- 关于CString总结
- JASPER REPORT + iREPORT + ECLIPSE (Beginner)