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