从这个问题:ls 是否总是列出 rm 将删除的文件?@fkraiem 评论说:
我有点惊讶 rm 没有 --dry-run 标志......
这让我想起了一个场景,我曾经使用seq
命令生成 1 - 100 的数字序列。问题是列表有一个前缀Item
seq 100
Run Code Online (Sandbox Code Playgroud)
生成:
1
2
3
...
100
Run Code Online (Sandbox Code Playgroud)
而我想要:
Item 1
Item 2
Item 3
...
Item 100
Run Code Online (Sandbox Code Playgroud)
以 seq 命令为例,无论如何我可以添加一个--prefix=[PREFIX]
标志来自动向生成的序列列表添加前缀吗?
我不是在谈论 bash 别名
一般来说,除了修改命令的代码(在编译的可执行文件的情况下还需要重新编译)之外,您还需要编写一个包装函数 - 作为 shell 函数或位于PATH
. 它需要:
但是,您seq
应该已经有一个选项来指定数字格式,这可能 (ab) 用于获取您想要的列表类型
Run Code Online (Sandbox Code Playgroud)-f, --format=FORMAT use printf style floating-point FORMAT
前任。
$ seq -f 'Item %.0f' 1 10
Item 1
Item 2
Item 3
Item 4
Item 5
Item 6
Item 7
Item 8
Item 9
Item 10
Run Code Online (Sandbox Code Playgroud)
更一般地,您可以使用printf
eg printf 'Item %d\n' $(seq 1 100)
or (使用 bash 的内置大括号扩展)printf 'Item %d\n' {1..100}
顺便说一句,rm
确实有一种空运行的标志,-i
Run Code Online (Sandbox Code Playgroud)-i prompt before every removal
或(不太便携)
Run Code Online (Sandbox Code Playgroud)-I prompt once before removing more than three files, or when removing recursively; less intrusive than -i, while still giving protection against most mistakes
归档时间: |
|
查看次数: |
1932 次 |
最近记录: |