Regex AIX上的sed正则表达式(第2部分)

Regex AIX上的sed正则表达式(第2部分),regex,unix,sed,aix,Regex,Unix,Sed,Aix,我试图在AIX上执行以下命令: sed 's/\([a-Z]*\),.*/\1/' config >config.new 其中,config是具有以下格式的文件: item1,file1 item2,file2 但我总是会遇到以下错误: sed: 0602-404 Function s/\([a-Z]*\),.*/\1/ cannot be parsed. 我怀疑正则表达式有问题,但它在SUN平台上运行良好。您希望保留逗号之前的所有内容。相反,您可以删除逗号后的所有内容: 's/

我试图在AIX上执行以下命令:

sed 's/\([a-Z]*\),.*/\1/' config >config.new
其中,config是具有以下格式的文件:

item1,file1
item2,file2
但我总是会遇到以下错误:

sed: 0602-404 Function s/\([a-Z]*\),.*/\1/ cannot be parsed.

我怀疑正则表达式有问题,但它在SUN平台上运行良好。

您希望保留逗号之前的所有内容。相反,您可以删除逗号后的所有内容:

  's/,.*//g'
表达式的问题可能是
[a-Z]
,其中a是ASCII 97,Z是ASCII 90

如果您需要
\1
,也可以使用
[^,]
(除逗号外的所有字符)


Z在a之前,所以你的射程是向后的。按照建议执行:A-z或A-zA-z。

这是否产生任何输出
sed的/\([a-Z]*\),./\1/'config
可能会转义
/
…不,它没有。它只是给出了那个错误。不,这也没用。我不太喜欢你的[a-Z],请尝试用[a-zA-Z]或[[:alpha:]替换,看看它是否有效。也许这就是你的麻烦所在…如果是的话,
cut-d',“-f1文件
也可以。谢谢!这就是问题所在。
  's/\([^,]*\),.*/\1/'