Bash Unix shell-如何按行数筛选文件?

Bash Unix shell-如何按行数筛选文件?,bash,shell,unix,scripting,Bash,Shell,Unix,Scripting,我正在尝试使用以下代码提取行数大于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 `]' 有什么想法吗?改变这一点: for

我正在尝试使用以下代码提取行数大于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 `]'
有什么想法吗?

改变这一点:

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
更改此项:

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
更改此项:

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
更改此项:

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
也许你可以试试:

for file in massive*
do
    [[ $(grep -c '' "$file") > 50 ]] && echo mv "$file" subset_massive_subcluster_num_gt50/
done
grep-c'
wc-l|cut

以上为“试运行”。如果满意,请删除回声。

也许您可以尝试:

for file in massive*
do
    [[ $(grep -c '' "$file") > 50 ]] && echo mv "$file" subset_massive_subcluster_num_gt50/
done
grep-c'
wc-l|cut

以上为“试运行”。如果满意,请删除回声。

也许您可以尝试:

for file in massive*
do
    [[ $(grep -c '' "$file") > 50 ]] && echo mv "$file" subset_massive_subcluster_num_gt50/
done
grep-c'
wc-l|cut

以上为“试运行”。如果满意,请删除回声。

也许您可以尝试:

for file in massive*
do
    [[ $(grep -c '' "$file") > 50 ]] && echo mv "$file" subset_massive_subcluster_num_gt50/
done
grep-c'
wc-l|cut


以上为“试运行”。如果满意,请删除
echo

首先运行代码并修复明显的问题。我不知道这意味着什么HellCheck是一个警告许多常见shell脚本错误的程序。它会抱怨该代码段上的解析错误,因为您的代码编写方式不完全有效(因此您的错误)。具体来说,您实际上没有运行
wc
/
cut
管道。对于
测试
/
[
命令。运行您的代码并首先修复明显的问题。我不知道这意味着什么HellCheck是一个警告许多常见shell脚本错误的程序。它会抱怨该代码段上的解析错误,因为您的代码编写方式不完全有效(因此您的错误)。具体来说,您实际上并没有运行
wc
/
cut
管道。这些都是
测试的文字[
命令。运行您的代码并首先修复明显的问题。我不知道这意味着什么HellCheck是一个警告许多常见shell脚本错误的程序。它会抱怨该代码段上的解析错误,因为您的代码编写方式不完全有效(因此您的错误)。具体来说,您实际上并没有运行
wc
/
cut
管道。这些都是
测试的文字[
命令。运行您的代码并首先修复明显的问题。我不知道这意味着什么HellCheck是一个警告许多常见shell脚本错误的程序。它会抱怨该代码段上的解析错误,因为您的代码编写方式不完全有效(因此您的错误)。具体来说,您实际上并没有运行
wc
/
cut
管道。这些都是
测试
/
[
命令的文字。