【发布时间】:2015-09-05 22:00:49
【问题描述】:
我在 zsh 中。
我想做这样的事情:
find . -iname *.md | xargs cat && echo "---" > all_slides_with_separators_in_between.md
当然,这会涵盖所有幻灯片,然后在末尾而不是在每张幻灯片之后附加一个“---”。
有这样做的 xargs 方式吗?我可以用一些内联函数或do 块替换cat && echo "---" 吗?
很奇怪,当我用内容创建一个文件
cat---.sh
cat $1
echo ---
然后运行
find . -iname *.md | xargs ./cat---.sh
它只对 find 的第一个结果执行。
用 cat 替换 cat---.sh 并在两个文件上运行。
【问题讨论】:
-
我很确定这个问题是重复的。我会看看我是否能找到一个合适的老问题;然后应该关闭这个。
-
顺便说一句,请参阅mywiki.wooledge.org/UsingFind 的“复杂操作”部分
-
顺便说一句,尽管 zsh often 让你懒得引用,但调用
find并不是其中之一。您需要-iname '*.md',而不是-iname *.md,否则在调用find之前,glob 将被扩展以引用当前目录中的文件名(如果存在任何匹配项)。 -
是的。如果脚本写成
for arg; do cat "$arg" && echo ---; done,那就可以了。 -
@Freiheit,您是否承认
shell、bash、zsh等。标签在 StackOverflow 上有什么位置?如果他们这样做,是什么区分属于这里的问题和属于 unix.SE 的问题?
标签: shell command-line zsh xargs