我正在尝试使用以下代码提取行数大于x的所有文件。
for i in massive*;
do
if [ wc -l $i | cut -d ' ' -f 1 > 50 ]; then
mv $i subset_massive_subcluster_num_gt50/;
fi;
done
但是每次进入循环时我都会收到以下错误:
cut: ]: No such file or directory
-bash: [: missing `]'
有什么想法吗?
答案 0 :(得分:2)
改变这个:
for i in massive*;
do
if [ wc -l $i | cut -d ' ' -f 1 > 50 ]; then
mv $i subset_massive_subcluster_num_gt50/;
fi;
done
对此:
for i in massive*;
do
if [ "$(wc -l "$i" | cut -d ' ' -f 1)" -gt 50 ]; then
mv "$i" subset_massive_subcluster_num_gt50/;
fi;
done
答案 1 :(得分:1)
也许你可以试试:
for file in massive*
do
[[ $(grep -c '' "$file") > 50 ]] && echo mv "$file" subset_massive_subcluster_num_gt50/
done
grep -c ''
比wc -l | cut
以上是“干跑”。如果满意,请删除echo
。