小编maj*_*tor的帖子

为什么这个 xargs 命令不起作用?

我想删除所有 .sh 扩展名,所以这样做了:

ls *.sh | xargs -I {} mv {} `basename {} .sh`
Run Code Online (Sandbox Code Playgroud)

但是它不起作用,它的行为就像basename返回未更改的文件名。

为什么会这样?

例如,这有效:

ls *.sh | xargs -I {} echo `basename {}.jpg .jpg`;
Run Code Online (Sandbox Code Playgroud)

编辑

解决方案:单引号可防止`basename ...`shell 在运行命令之前进行评估。

ls *.sh | xargs -I {}  sh -c 'mv {} `basename {} .sh`'
Run Code Online (Sandbox Code Playgroud)

bash xargs text-processing

16
推荐指数
1
解决办法
2万
查看次数

Vim 在终端上打印文件并退出

我希望 vim 这样做,以便在 vim 中设置语法高亮(或不需要额外的工具)。因此,cat file | <some_sh_tool>我会使用vim +"some_opts" +"..." +q file. 问题是 vim 在退出时恢复以前的屏幕,但是使用一些远程访问工具这没有发生,所以它基本上像 cat 一样工作,带有语法高亮。

那么,这可能吗?

编辑

考虑更多这一点,我认为这是一件很棒的事情。除了语法高亮显示文件内容时,还可以使用 vim 的其他功能,如行号、空格、换行等……尤其是在脚本中,因为 vim 无处不在。

vim

14
推荐指数
2
解决办法
4481
查看次数

标签 统计

bash ×1

text-processing ×1

vim ×1

xargs ×1