Bash Unix shell-如何按行数筛选文件?
我正在尝试使用以下代码提取行数大于x的所有文件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
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
管道。这些都是测试/[
命令的文字。