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