问题: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)

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 字符串匹配相关推荐

  1. linux shell 字符串开头,shell字符串匹配的实现

    一.简介 Bash Shell提供了很多字符串和文件处理的命令.如awk.expr.grep.sed等命令,还有文件的排序.合并和分割等一系列的操作命令.grep.sed和awk内容比较多故单独列出, ...

  2. Linux shell 字符串匹配

    最近进行脚本学习的时候,遇到了字符串匹配的问题,网上的内容也很乱,在这里我就写一个简单可行的方法吧. 首先假设一个场景:在一个文件夹里有很多后缀为sh的文件,那我怎么移动除了指定的某些文件之外文件到特 ...

  3. iptables实现字符串匹配

    iptables实现字符串匹配 分类: SHELL&linux命令2012-07-03 18:25 3172人阅读 评论(0) 收藏 举报 stringinputtcpoutputhexlin ...

  4. VB中字符串匹配的多种方式

    这段时间在移植项目的过程中,起初我想判断一个字符串中是否存在某字符(串),直接的使用方法是用instr(start,string1,string2,VB compare),但经过分析在VB中可以只用一 ...

  5. Python 字符串匹配、搜索及替换

    文章目录 字符串匹配.搜索及替换 字符串开头或结尾匹配 str.startswith() 和 str.endswith() 用 Shell 通配符匹配字符串 fnmatch() 和 fnmatchca ...

  6. CCF - 201409-3 - 字符串匹配

    问题描述 试题编号: 201409-3 试题名称: 字符串匹配 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你 ...

  7. 字符串匹配shiftand算法

    令人惊叹的Shift-And/Shift-Or 写在前面:Shift-And/Shift-Or是如此令人惊叹的算法,在KMP基础上开始一段神奇之旅. 目的:以Shift-And算法为载体,试图在减少思 ...

  8. 字符串匹配数据结构 --Trie树 高效实现搜索词提示 / IDE自动补全

    文章目录 1. 算法背景 2. Trie 树实现原理 2.1 Trie 树的构建 2.2 Trie树的查找 2.3 Trie树的遍历 2.4 Trie树的时间/空间复杂度 2.5 Trie 树 Vs ...

  9. 2021年度训练联盟热身训练赛第四场 H - Rock Paper Scissors(字符串匹配,FFT)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 2021年度训练联盟热身训练赛第四场 H - Rock Paper Scissors(字符串匹配,FF ...

最新文章

  1. Android之ViewHolder用法
  2. 八、Java中的i++和++i到底是什么?
  3. PhotoShop常用的功能汇总
  4. Serverless 落地之痛怎么解?
  5. 论文浅尝 | 一种基于递归超图的知识图谱问答方法
  6. shell脚本触发java程序支持传参补跑 +crontab定时器+每天生成日期文件_03
  7. mysql 利用触发器(Trigger)让代码更简单
  8. nginx server location
  9. 在程序员眼里,马云 1000 亿的大业败给了王者荣耀 100 个月工资的奖金
  10. bind2nd的注意事项 zz
  11. 216.组合总和III
  12. 7.72GB ARCGIS ERDAS ENVI干货教程网盘下载
  13. 解决fatal: unable to connect to github.com
  14. Live Archive 6657
  15. 中国人民大学计算机专硕好考吗,干货:中国人民大学考研复试成功经验分享,值得收藏!...
  16. 简单做一段自己CSGO游戏的视频
  17. Python pivot详解
  18. HTML中支持qlv文件格式吗,qlv格式怎么播放,格式工厂不支持qlv
  19. C# - Tester-Doer Pattern
  20. 重磅 | Stratifyd入选“数据分析与商业智能平台典型供应商”

热门文章

  1. 电脑麦克风可以录音但总有沙沙的声音如何解决
  2. oracle环境配置全过程
  3. 用html做七巧板的方法,七巧板制作教程 七巧板的制作方法
  4. 集成算法系列之GBM
  5. 实现textarea不自动换行
  6. 计算机组成原理-课设
  7. 四个方面讲解MPK(安规电容)与CBB电容的区别
  8. echarts设置label添加下划线
  9. Signatures-based、Anomaly-based、Specification-based三种入侵检测方法的简介
  10. 通过apk签名使应用程序有系统权限