Shell 管道排序为sed,匹配记录末尾的5位或更多数字?

Shell 管道排序为sed,匹配记录末尾的5位或更多数字?,shell,unix,Shell,Unix,文件 我必须删除所有10000美元或以上的汽车(文件的最后一列)。为了做到这一点,我必须将排序的输出通过管道传输到sed中,方法是当表示5个或更多数字的正则表达式在记录末尾匹配时退出 这是我必须执行的命令:grep-iv雪佛兰汽车| sort-nk5 到目前为止,我试过: grep-iv雪佛兰汽车| sort-nk5 | sed-n'/[0-9]{5}*/' 但是没有用 使用-n开关,您必须显式地p打印匹配行和!p打印非加工线,即不成本为5位数的汽车。还要将$添加到模式中以仅在末尾匹配,并对重

文件

我必须删除所有10000美元或以上的汽车(文件的最后一列)。为了做到这一点,我必须将排序的输出通过管道传输到sed中,方法是当表示5个或更多数字的正则表达式在记录末尾匹配时退出

这是我必须执行的命令:
grep-iv雪佛兰汽车| sort-nk5

到目前为止,我试过:

grep-iv雪佛兰汽车| sort-nk5 | sed-n'/[0-9]{5}*/'

但是没有用



使用
-n
开关,您必须显式地
p
打印匹配行和
!p
打印非加工线,即不成本为5位数的汽车。还要将
$
添加到模式中以仅在末尾匹配,并对重复组转义
\{
\}
,否则它将匹配数字后面的文本字符串
{5}

所以试试这个:
sed-n'/[0-9]\{5\}$/!p'


如果要在第一次匹配时退出,而不是只打印相关匹配,请尝试使用
q
命令,而不是
!p

使用
-n
开关,您必须显式地
p
打印匹配行,并且
!p
打印非加工线,即不成本为5位数的汽车。还要将
$
添加到模式中以仅在末尾匹配,并对重复组转义
\{
\}
,否则它将匹配数字后面的文本字符串
{5}

所以试试这个:
sed-n'/[0-9]\{5\}$/!p'

如果要在第一次匹配时退出,而不是只打印相关匹配,请尝试使用
q
命令,而不是
!p

试试看

So far we have:

grep -iv chevy cars | sort -nk 5

Now let's delete the cars that are $10,000 or more.  Pipe the output of the sort into
a sed to do this, by quitting as soon as we match a regular expression representing 5
(or more) digits at the end of a record (DO NOT use repetition for this):

You entered: grep -iv chevy cars | sort -nk 5 | sed -n '/[0-9]{5}$/'
Please try again.
看起来很乏味,但它能工作

试试看

So far we have:

grep -iv chevy cars | sort -nk 5

Now let's delete the cars that are $10,000 or more.  Pipe the output of the sort into
a sed to do this, by quitting as soon as we match a regular expression representing 5
(or more) digits at the end of a record (DO NOT use repetition for this):

You entered: grep -iv chevy cars | sort -nk 5 | sed -n '/[0-9]{5}$/'
Please try again.
sed '/[0-9][0-9][0-9][0-9][0-9]$/ d'

看起来很乏味,但它能工作

也许你需要和我聊聊。他的问题看起来和你的几乎一样(他也需要删除价值1万美元的雪佛兰汽车),所以你可能在上同样的课。也许你需要和他聊聊。他的问题看起来和你的几乎一样(他也需要删除价值1万美元的雪佛兰汽车),所以你可能在做同样的课程。
sed '/[0-9][0-9][0-9][0-9][0-9]$/ d'