shell 如何判断某个文件名以某个字符开头~

2024-06-02 17:58

本文主要是介绍shell 如何判断某个文件名以某个字符开头~,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题: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 如何判断某个文件名以某个字符开头~的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1024686

相关文章

Linux文件名修改方法大全

《Linux文件名修改方法大全》在Linux系统中,文件名修改是一个常见且重要的操作,文件名修改可以更好地管理文件和文件夹,使其更具可读性和有序性,本文将介绍三种在Linux系统下常用的文件名修改方法... 目录一、引言二、使用mv命令修改文件名三、使用rename命令修改文件名四、mv命令和rename命

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st

C++实现回文串判断的两种高效方法

《C++实现回文串判断的两种高效方法》文章介绍了两种判断回文串的方法:解法一通过创建新字符串来处理,解法二在原字符串上直接筛选判断,两种方法都使用了双指针法,文中通过代码示例讲解的非常详细,需要的朋友... 目录一、问题描述示例二、解法一:将字母数字连接到新的 string思路代码实现代码解释复杂度分析三、

C# string转unicode字符的实现

《C#string转unicode字符的实现》本文主要介绍了C#string转unicode字符的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录1. 获取字符串中每个字符的 Unicode 值示例代码:输出:2. 将 Unicode 值格式化

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下

Python判断for循环最后一次的6种方法

《Python判断for循环最后一次的6种方法》在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态... 目录1.使用enuhttp://www.chinasem.cnmerate()和len()来判断for

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu