移动目录中少于 X 行的所有文件
move all files in a directory that have less than X lines
我正在尝试移动少于 X 行的目录中的所有文件(在我的例子中为 6)
我试过了:
find /path/folder/ -type f -exec awk -v lines=6 'NR>lines{f=1; exit} END{exit !f}' {} \; -exec echo mv output_folder/ {} \;
但是它不起作用,所有文件都被移动了。有什么建议吗?
因为这被标记为 bash
。
find /path/folder -type f -exec sh -c '
for f; do
total_count=$(wc -l < "$f")
if [ "$total_count" -lt 6 ]; then
echo mv -vn -- "$f" /destination
fi
done' _ {} +
一行。
find /folder/path -type f -exec sh -c 'for f; do total_count=$(wc -l < "$f"); if [ "$total_count" -lt 6 ]; then echo mv -vn -- "$f" /destination; fi; done' _ {} +
如果您对输出满意,请删除 echo
。
-
我正在尝试移动少于 X 行的目录中的所有文件(在我的例子中为 6)
我试过了:
find /path/folder/ -type f -exec awk -v lines=6 'NR>lines{f=1; exit} END{exit !f}' {} \; -exec echo mv output_folder/ {} \;
但是它不起作用,所有文件都被移动了。有什么建议吗?
因为这被标记为 bash
。
find /path/folder -type f -exec sh -c '
for f; do
total_count=$(wc -l < "$f")
if [ "$total_count" -lt 6 ]; then
echo mv -vn -- "$f" /destination
fi
done' _ {} +
一行。
find /folder/path -type f -exec sh -c 'for f; do total_count=$(wc -l < "$f"); if [ "$total_count" -lt 6 ]; then echo mv -vn -- "$f" /destination; fi; done' _ {} +
如果您对输出满意,请删除
echo
。