我发现自己不断地查找语法
find . -name "FILENAME" -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
主要是因为我不明白这-exec
部分是如何工作的。大括号、反斜杠和分号的含义是什么?该语法还有其他用例吗?
我想find
对一些嵌套的 csv 文件的结果运行两个管道命令,但我很惨地失败了。
这是一个想法:
$ find ./tmp/*/ -name '*.csv' -exec tail -n +2 {} | wc -l \;
Run Code Online (Sandbox Code Playgroud)
为了不计算每个 CSV 文件的标题行。
该命令失败:
wc: ';': No such file or directory
find: missing argument to `-exec'
Run Code Online (Sandbox Code Playgroud)
for
在这种情况下我真的需要做一个循环吗?
例如:
wc: ';': No such file or directory
find: missing argument to `-exec'
Run Code Online (Sandbox Code Playgroud)
但是这样我就失去了很好的输出,find
其中确实包括计数中的文件名。
使用此解决方案时,我也丢失了文件名:find -exec 中的管道命令?
$ for f in ./tmp/*/*.csv; do tail -n +2 ${f} | wc -l; done
Run Code Online (Sandbox Code Playgroud)
一点精度;当我谈到打印的文件名时,这是因为我在单个文件上调用命令时习惯了以下结果:
$ tail -n +2 | …
Run Code Online (Sandbox Code Playgroud)