bash:保留所有值>;3500与sed

bash:保留所有值>;3500与sed,bash,Bash,我有一个关于sed cmd的问题:如何在一个字段中保持所有大于3500的值 这是我的问题: 我已将其作为输出(来自.csv文件): 我想保留Val1仅大于3500且Val2>=60,00的所有行(Awk在这种情况下是正确的方法: awk 'BEGIN{ FS=OFS=";" }$2 > 3500 && ($4 >= 60.00 && $4 <= 99.99)' file awk'BEGIN{FS=OFS=“;”}$2>3500&&($4>=60

我有一个关于sed cmd的问题:如何在一个字段中保持所有大于3500的值

这是我的问题: 我已将其作为输出(来自.csv文件):


我想保留Val1仅大于3500且Val2>=60,00的所有行(
Awk
在这种情况下是正确的方法:

awk 'BEGIN{ FS=OFS=";" }$2 > 3500 && ($4 >= 60.00 && $4 <= 99.99)' file

awk'BEGIN{FS=OFS=“;”}$2>3500&&($4>=60.00&&&$4解析错误在
[^([0-9][1-9][0-9][1-9][0-9]{2}[1-2][0-9]{3}[0-4]
中。我不完全确定具体在哪里,但这并不重要,因为您的方法中存在错误:

(倒置)字符类
[^…]
不能处理完整字符串。
[^ab|xy]
匹配所有不是
a
b
x
y
的单个字符。 如果你想说»除0,1,2,…,3500以外的所有字符串«你必须使用不同的东西,可能是一个积极的公式,如»3500,3501,…«中的所有字符串

以下正则表达式适用于大于等于3500的数字

0*([1-9][0-9]{4,}|[4-9][0-9]{3}|3[5-9][0-9]{2})

不要为此使用
sed
;使用
awk
。我可能错了,但是我想,
[a-exyz]
[^a-exyz]
都是纯字符类,除了a-e这样的范围之外,不包含其他表达式。所以
([
在这样一个类中是字面意义上的。我很惊讶,这不是a]谢谢你的回答,但我只能用sed(是的,我知道它不是最好的,但是…:s)谢谢你,我终于做到了:
sed-rn的/^(.*)(350[1-9]| 35[1-9][0-9]| 3[6-9][0-9][2}[4-9][0-9][3}[1-9][0-9][0-9][0-9]{4,})(.*)$/Dans la ville de\1、\2 votants avec un pourcentage de\4 pour\3/p'
并且它正在工作
`sed -e expression #1, char 174: Unmatched ) or \)`
awk 'BEGIN{ FS=OFS=";" }$2 > 3500 && ($4 >= 60.00 && $4 <= 99.99)' file
0*([1-9][0-9]{4,}|[4-9][0-9]{3}|3[5-9][0-9]{2})