shell脚本中的一些文件操作

博客主要对sed命令进行了详细讲解。sed是在Linux系统中常用的文本处理工具,借助shell脚本可高效完成文本编辑等操作,在信息技术领域的文本处理场景中十分实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

if [ $# -ne 1 ];then
echo "usage: argument 1: 请输入第一个参数"
exit 1
#如果输入的参数少于1个则会在console中打出提示,并退出程序
fi #结束if
path=${1}#将第一个参数赋值给path
for dir in ${ls ${path}}
do
path2=${path}${dir} $创建完整路径
cd ${path2} #进入路径
mv *.jpg xx.jpg #改名字
echo ${dir}"修改名字完成" #在控制台输出信息,可以在后面直接加"字符串"
done
#用下面这一句就可以打出所有目录名
#ls -l | grep "^d" | cut -d " " -f 10
#ls -l | grep "^d" 取出以d开头的所有字段
#cut -d " " -f 10 取出以" "为分割的第10个数
awk是行处理器
awk处理过程:依次对每一行进行处理,然后输出
awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
[-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value
'  '          引用代码块
BEGIN   初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
//           匹配代码块,可以是字符串或正则表达式
{}           命令代码块,包含一条或多条命令
;          多条命令使用分号分隔
END      结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息


ls -l ${filepath} |awk '/^d/ {print $NF}' #输入文件夹下的所有文件名
#批量替换:find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'
#批量替换2 :sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
命令格式:
wc [选项] 文件...
命令功能:
统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。
如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。
命令参数:
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
--version 显示版本信息
#判断文件是否存在
if [ ! -f ./${imgname}.txt ];then
[ -d $dir ] #判断是否是文件路径
#判断在哪个范围之内
if [ ${lineNum} -gt 8 -a ${lineNum} -le 12 ];then
expr ${lineNum} - ${originNum} #expr 算出运算符 也可以是正则表达式[详](https://www.cnblogs.com/f-ck-need-u/p/7231832.html)
sed 批量替换文件内容:  用sed命令可以批量替换多个文件中的字符串
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
对多个文件的处理可能不支持,需要用 xargs, 搞定。
grep oldString -rl /path | xargs sed -i "s/oldString/newString/g"
find . -name 53hhgsave.xml | xargs sed -i

sed命令详解

#批量修改文件名
perl -pi -e "s|${namebefore}|${namechangeto}|g" $path/$file
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值