Regex AIX上的sed正则表达式(第2部分)
我试图在AIX上执行以下命令: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/
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/'