shell 字符串匹配

【linux shell 相关】-3 Part1前言 linux shell 常见的面试问题,基本是先让你随便说一些,测试一下你掌握的广度,这时候你至少要说上十个才行,但是!不要说太难的,否则很容易掉进自己的坑里,相当于提醒了面试官去问你 : find ,vi编辑器这种会让面试官出一个极复杂的命令。但是之后 面试官仍然会出一些 非常复杂的命令,本小节复习,除了基础中常见的命令之外,还有常见的复杂命令。 Part2基础命令 注意,每个linux命令都包含很多参数,我这里不像网上教程一样全写出来,我只会把常用的或者面试大概率遇到的参数写出来, 阅读详情
问题: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'
2.3用Shell通配符匹配字符串 问题 ​ 你想使用Unix Shell中常用的通配符(比如*.py,Date[0-9]*.csv等)去匹配文本支付串 解决方案 ​ fnamtch模块提供了两个模块函数–fnamtch()和fnmatchcase(),可以用来实现这样的匹配。 from fnmatch import fnmatch,fnmatchcase print(fnmatch('foo.txt','*.txt')) # ->True print(fnmatch('foo.txt','?oo.txt'))# ->T 阅读详情

相关推荐

Linux Shell 中查找字符串或匹配模式的方法

在 Linux Shell 中,我们经常需要在整个工程中查找特定的字符串或匹配某种模式的文件。ripgrep 是一个高效的代码搜索工具,它采用多线程和高级算法来提供快速的搜索速度。grep 是一个强大的命令行工具,用于在文件中搜索匹配某个模式的行。这个命令将在当前目录及其子目录中查找所有文件,并对每个文件使用 grep 命令进行匹配。ripgrep 命令将递归地搜索当前目录及其子目录,并显示匹配的文件名和匹配的行。ack 命令将递归地搜索当前目录及其子目录,并显示匹配的文件名和匹配的行。

DevCharm的博客 1146

Shell字符串模式匹配

shell字符串模式匹配

weixin_44080021的博客 1515

shell中如何判断是否包含某个字符串

【代码】shell中如何判断是否包含某个字符串。

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 5614

shell浅谈之六字符串和文件处理

一、简介       Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for、while和until。while循环和for循环属于“当型循环”,而until属于“直到型循环”。循环控制符:break和continue控制流程转向。 二、详解 1、for循环 (1)for循环有三种结构:一种是列表for循环,第二种是不带列表for

乌托邦 3776

振动能量采集技术:从原理到实战,破解物联网供电难题

能量采集技术旨在捕获环境中的废弃能量(如机械振动、热能、光能)并将其转化为电能,其核心原理在于通过压电、电磁、静电或摩擦电等物理效应实现能量形式的转换。这项技术的核心价值在于为物联网(IoT)中难以布线或更换电池的分布式传感器节点、植入式医疗设备等提供近乎永续的电力解决方案,从而解决物联网部署的“最后一米供电”瓶颈。其应用场景广泛覆盖工业预测性维护、结构健康监测、可穿戴设备及消费电子等领域。本文聚焦于振动能量采集这一细分方向,深入剖析了压电式、电磁式、电容式及摩擦纳米发电机(TENG)等主流技术路线的实战考

weixin_42660494的博客 565

Pi0 项目复现及项目问题解决方案(全网抢先发布~)

Pi0 项目复现及项目问题解决方案(全网抢先发布~)

m0_68167062的博客 2261

shell通配符字符串匹配

在Linux Shell命令下通配符’‘表示0个或多个字符, 现编写一段代码实现通配符’‘的功能,注意只需要实现’*’, 不用实现其他通配符。 输入描述: 第一行输入通配字符串 第二行输入要匹配查找的字符串 输出描述: 输出所有匹配的字串起始位置和长度,每行一个匹配输出 如果不匹配,则输出 -1 0 如果有多个按照起始位置和长度的正序输出。 输入例子1: shopee*.com shopeemobile.com 输出例子1: 0 16 例子说明1: 0 起始位置,16长度 输入例子2: *.com shop

stsfang 2985

NVIDIA Jetson之远程控制软件NoMachine安装使用

参考:https://www.bilibili.com/video/BV1cg4y1i776?t=12 0 背景

ZONGXP的博客 1万+

shell 进阶之匹配字符串

  一,操作字符串   1,字符串长度     expr 命令取字符串函数          自带shell函数读取        2,匹配字符串开头字串的长度    !!!!!!!!!!!!$substring是正则表达式.!!!!!!!!!     expr 格式  expr match "$string" '$substring'           ...

Z14523299999的博客 535

12、激光制造中人工智能与机器学习的应用及挑战

本文探讨了人工智能与机器学习在激光制造中的应用,重点分析了图像分类技术在质量检测中的多种方法及其性能对比,包括基于贝叶斯分类、卷积神经网络(CNN)和多尺度CNN的技术。同时,文章指出了AI在激光制造中面临的五大挑战:鲁棒性、安全性、可解释性、责任归属和可预测性,并提出了相应的解决思路。此外,还介绍了激光制造的主要应用技术如切割、焊接和增材制造的流程、优势与局限性,并通过对比表格直观展示不同技术的特点。最后展望了未来激光制造向智能化、自动化和可持续化发展的趋势。

rgv234567的博客 136

计算机应用数学--第一次作业

中科大 计算机应用数学 第一次作业

一杯水果茶!足矣~ 1328

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

一、简介Bash Shell提供了很多字符串和文件处理的命令。如awk、expr、grep、sed等命令,还有文件的排序、合并和分割等一系列的操作命令。grep、sed和awk内容比较多故单独列出,本文只涉及字符串的处理和部分文本处理命令。二、字符串处理1、expr命令expr引出通用求值表达式,可以实现算术操作、比较操作、字符串操作和逻辑操作等功能。(1)计算字符串长度字符串名为string,可...

weixin_34737524的博客 4803

【软件使用】向日葵网络连接错误

一直报这个错误,尝试了修改版本无果,各种密码都正确,最后得出结轮是时间没有同步,查看代理是否更改了时间,做一下同步即可。

andeyeluguo的博客 7970

Python 用Shell通配符匹配字符串

用Shell通配符匹配字符串 问题 你想使用Unix Shell中常用的通配符(比如*.py,Dat[0-9]*.csv等)去匹配文本字符串 解决方案 fnmatch模块提供了两个函数——fnmatch()和fnmatchcase(),可以用来实现这样的匹配。用法如下: >>> from fnmatch import fnmatch, fnmat...

Through Da Storm 395

【电路设计】SERDES与pcie

明确通信接口需要达到什么样的数据速率、信号完整性以及系统中各个部件的互相作用。2.

数字人生 4563

【python数据处理】python实现vlookup字符串模糊匹配及在实战中的应用(FuzzyWuzzy库)

利用FuzzyWuzzy库匹配字符串1. 背景前言2. FuzzyWuzzy库介绍2.1 安装2.1 fuzz模块2.1.1 简单匹配(Ratio)2.1.2 非完全匹配(Partial Ratio)2.1.3 忽略顺序匹配(Token Sort Ratio)2.1.4 去重子集匹配(Token Set Ratio)2.2 process模块2.2.1 extract提取多条数据2.2.2 extractOne提取一条数据3. pandas实战应用3.1 公司名称字段模糊匹配3.1.1 参数讲解:3.1.2

lys_828的博客 8322

【笔试练习题】shell * 字符串匹配

题目:https://www.nowcoder.com/questionTerminal/bab19e5b95b54744aa824e0d7be51487 动态规划,内存超限: #include <vector> #include <string> #include <iostream> #include <regex> using names...

荆赤潮的博客 879

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Shell字符串匹配

方法一 网上看到这两个方法,貌似有些问题 echo $line | grep -e "*repeat*" test $? -eq 0 && echo "yes" || echo "no" 用-e还是-q需要验证 echo $line | grep -q "*repeat*"                             #这个貌似 test $

sofia1217的专栏 496

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

shell 分割字符串_谈一谈Shell中的贪婪匹配和非贪婪匹配

Shell中的贪婪匹配和非贪婪匹配非贪婪匹配,即匹配符合通配符的最短结果。贪婪匹配,即匹配符合通配符的最长结果。下面案例为例:1、${VALUE%.*}或${VALUE%%.*}:删除VALUE字符串中以分隔符"."匹配的右边字符,保留左边字符。简单解释:*:通配符,用于匹配字符串将被删除的子串。.:分割符,可以为任意一个或多个字符。%:从右向左匹配。%:非贪婪匹配,即匹配符合通配符的最短结果。%...

weixin_39716043的博客 450

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

shell字符串截取,字符串最长最短匹配方程,变量初始值

使用Shell完成各种Linux运维任务时,一旦涉及到判断、条件测试等相关操作时,往往需要对相关的命令输出进行过滤,提取出符合要求的字符串。 字符串截取的方式: ${变量名:起始位置:长度} 1)截取前两个字符 [root@myhost conf]# a="abcd" [root@myhost conf]# echo ${a:0:2} ab 2)截取前两个字符 [root@myho...

ck784101777的博客 1103

shell 中匹配正则 字符串处理【整理版】

shell字符串处理

JavaPub 1万+

shell字符串匹配

一、简介       Bash Shell提供了很多字符串和文件处理的命令。如awk、expr、grep、sed等命令,还有文件的排序、合并和分割等一系列的操作命令。grep、sed和awk内容比较多故单独列出,本文只涉及字符串的处理和部分文本处理命令。 二、字符串处理 1、expr命令 expr引出通用求值表达式,可以实现算术操作、比较操作、字符串操作和逻辑操作等

xy913741894的博客 5万+

shell脚本 字符串子串匹配

shell脚本中字符串子串匹配 a="abc"b="abcd"case $b in       "$a"*)              #do anything that you want              ;;         *) ;;esac 在shell脚本中字符串子串匹配的test不能作为condition造成了在if语句中无法应用,但是作

icetomoyo的专栏 2520

使用Shell通配符模式匹配字符串

问题 希望使用与在Unix shell中常用的相同通配符模式匹配文本(例如,.py,Dat [0-9].csv等)。 方案 fnmatch模块提供了两个函数fnmatch和fnmatchcase。唯一的区别是是否区分字母大小写。示例如下: >>> from fnmatch import fnmatch, fnmatchcase >>> fnmatch(...

Jeffrey_bird的博客 917

Linux shell 字符串模式匹配运算符

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

halazi100 9796
上一篇: 局域网斗法
下一篇: 自己实现assert
gnuser
博客等级 码龄20年 35粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值