Linux Shell 用法(二)split和VAR命令

本文介绍了Linux Shell中的split命令,用于将大文件分割成多个小文件,详细解释了如何设置文件大小和后缀。此外,还探讨了Shell变量操作,包括非贪婪与贪婪匹配的%和%%操作符,以及#和##操作符在提取和删除文件扩展名中的应用。

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

split命令可以用来分割文件

$ split -b 10k data.file
$ ls
data.file xaa xab xac xad xae xaf xag xah xai xaj

上面的命令将data.file分割成了10个大小为10KB的文件。

如果想使用数字后缀,需要使用-d选项。此外, -a length 可以指定后缀长度:

$ split -b 10k data.file -d -a 4
$ ls
data.file x0009 x0019 x0029 x0039 x0049 x0059 x0069 x0079

VAR

${VAR%.*} 的含义如下。

KaTeX parse error: Unexpected character: '' at position 47: …。通配符从右向左进 行匹配。 ̲ 给VAR赋值,即VAR=sa…VAR中 删除匹配结果,得到输出sample。
%属于非贪婪(non-greedy)操作。它从右向左找出匹配通配符的最短结果。还有另一个操作 符%%,它与%相似,但行为模式却是贪婪的,这意味着它会匹配符合通配符的最长结果。例如, 我们现在有这样一个文件:

VAR=hack.fun.book.txt

使用%操作符从右向左执行非贪婪匹配,得到匹配结果.txt:

 $ echo ${VAR%.*}

命令输出:hack.fun.book。

使用%%操作符从右向左执行贪婪匹配,得到匹配结果.fun.book.txt:

$ echo ${VAR%%.*}

命令输出:hack。
#操作符可以从文件名中提取扩展名。这个操作符与%类似,不过求值方向是从左向右。 ${VAR#*.}的含义如下:

从$VARIABLE中删除位于#右侧的通配符(即在上例中使用的*.)从左向右所匹配到的字 符串。
和%%类似,#也有一个对应的贪婪操作符##。
##从左向右进行贪婪匹配,并从指定变量中删除匹配结果。来看一个例子:

VAR=hack.fun.book.txt

使用#操作符从左向右执行非贪婪匹配,得到匹配结果hack:

$ echo ${VAR#*.}

命令输出:fun.book.txt。
使用##操作符从左向右执行贪婪匹配,得到匹配结果hack.fun.book:

$ echo ${VAR##*.}

命令输出:txt。

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

www.google

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

www

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

google.com

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

com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值