25 command-line bash
假设我有一堆这样命名的文件:
file01.txt file02.txt file03.txt ... file20.txt
Run Code Online (Sandbox Code Playgroud)
我想对一系列这些文件执行命令。
我知道如果想从 'file05.txt' 'rm' 到 'file09.txt' 我可以这样做:
rm file0[5-9].txt
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能'rm'从file08.txt到file13.txt的范围?我试过这个代码
rm file[08-13].txt
Run Code Online (Sandbox Code Playgroud)
它不起作用。我可以运行这个命令:
rm file0[89].txt file1[0-3].txt
Run Code Online (Sandbox Code Playgroud)
但我想知道如果可能的话,我是否可以只用一个更精细的参数来实现这个 'rm'。
hee*_*ayl 42
您需要使用大括号扩展bash:
rm file{08..13}.txt
Run Code Online (Sandbox Code Playgroud)
这会将文件删除file08到file13,如果缺少任何文件,将显示错误消息。
设置范围以满足您的需要。
globbing 运算符的问题[]在于它将其中的每个字符/数字视为单个标记,因此仅支持使用单个数字的范围声明。
如果你坚持使用[],你可以用这个比较难看模式匹配file08到file13:
rm file0[8-9].txt file1[0-3].txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5351 次 |
| 最近记录: |