Shell学习五-分割文件和提取文件名扩展名

本文介绍了如何使用Unix/Linux下的split和csplit命令来分割大文件,包括按大小和行数分割,以及如何通过参数设置指定文件前缀和后缀。此外,还详细解释了如何利用shell变量操作符管理和删除临时文件。

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

临时文件命名与随机数

mktemp

-d

-u

 

 

分割文件和数据 split只能根据文件大小和行数分割文件

将文件分割成20k大小的文件块

split -b 20k testsplit.file

指定文件前缀名

split [COMMAND_ARGS] PREFIX

split -b 20k testsplit.file split_file

 

文件行数指定-l no_of_lines

split -l 100000 testsplit.file

删除临时文件

find ./ -type f -name "split_file*" -print0 | xargs -0 rm -f

 

 

 

csplit是split工具的一个变体。split只能够根据数据大小或行数分割文件,而csplit

可以根据文本自身的特点进行分割

 

 

切分文件名 名称.扩展名

 

%操作符 提取名称

操作符%使用.*从右向左执行非贪婪匹配(.txt)

 

操作符%%则用.*从右向左执行贪婪匹配(.fun.book.txt)

file_jpg="sample.jpg"

name=${file_jpg%.*}

echo File name is :$name

# 操作符 提取后缀

操作符#用*.从左向右执行非贪婪匹配(hack)。

extension=${file_jpg#*.}

echo Extension is: jpg

 

VAR=hack.fun.book.txt

echo ${VAR#*.}

例子定URL="www.google.com":

$ echo ${URL%.*} # 移除.*所匹配的最右边的内容

www.google

$ echo ${URL%%.*} # 将从右边开始一直匹配到最左边的*.移除(贪婪操作符)

www

$ echo ${URL#*.} # 移除*.所匹配的最左边的内容

google.com

$ echo ${URL##*.} # 将从左边开始一直匹配到最右边的*.移除(贪婪操作符)

com

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/iioschina/blog/2218868

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值