Bash 获取并处理每行的最后一个单词,同时在文本行中循环

Bash 获取并处理每行的最后一个单词,同时在文本行中循环,bash,Bash,假设我得到了这个数据文件: apples asd 45 321 7000 oranges gl 78 102 850 some ltd 83 15 500 other nova 80 50 3500 stuff 600 65 115 450 我想循环每一行,得到最后一个字(大数字),也就是价格。然后检查它是否小于1000,如果小于,则将其输出到另一

假设我得到了这个数据文件:

apples   asd   45      321     7000
oranges   gl   78      102     850
some    ltd     83      15      500
other   nova    80      50      3500
stuff    600     65      115     450
我想循环每一行,得到最后一个字(大数字),也就是价格。然后检查它是否小于
1000
,如果小于,则将其输出到另一个文件

以下是我得到的:

touch items_cheaper_than_1k.txt
while read LINE
do
        PRICE="$(cut -d. -f3 $LINE)"
        if [$PRICE < 1000]; then
                $LINE >> items_cheaper_than_1k.txt
        fi
done < cars.txt
cat items_cheaper_than_1k.txt
(并按顺序为每行的每个单词)。我剪错了吗

在每行错误列表之后,我得到
第5行:1000]:没有这样的文件或目录

awk '$NF<1000' file.txt
示例:

% cat file.txt 
apples   asd   45      321     7000
oranges   gl   78      102     850
some    ltd     83      15      500
other   nova    80      50      3500
stuff    600     65      115     450

% awk '$NF<1000' file.txt
oranges   gl   78      102     850
some    ltd     83      15      500
stuff    600     65      115     450
%cat file.txt
苹果asd 45 321 7000
橙子gl 78 102 850
someltd 83 15 500
其他新星80 50 3500
材料600 65 115 450

%awk'$nf
cut
的参数是一个文件名,而不是要处理的字符串。您需要通过管道将字符串传输到
cut
。您还需要学习基本的shell语法<代码>如果[$PRICE<1000]
应该是
如果[$PRICE-lt 1000]
。你需要在
[
]
周围留出空格,你必须使用
-lt
,因为
LOL,这比我编写整个脚本的方法简单和快速9999倍!知道命令的力量…@Milkncookiez是的
awk
是任何字段分隔数据的转到工具。
awk '$NF<1000' file.txt >out.txt
% cat file.txt 
apples   asd   45      321     7000
oranges   gl   78      102     850
some    ltd     83      15      500
other   nova    80      50      3500
stuff    600     65      115     450

% awk '$NF<1000' file.txt
oranges   gl   78      102     850
some    ltd     83      15      500
stuff    600     65      115     450