solaris awk正则表达式匹配中不区分大小写的匹配

solaris awk正则表达式匹配中不区分大小写的匹配,awk,solaris,Awk,Solaris,在red hat中,我可以使用'i'标志/regex/i 在solaris中,它不起作用,我正在寻找一种方法来实现它。 我的剧本是: ls -1 /webapp/dir/bin | awk '/AR[0-9]+/ && /SMF_LOG/ {dp_pkg=substr($NF,index($NF,"AR")+2); print $NF"@"dp_pkg}' | sort -k2 -t '@' -nr | head -n1 | cut -d'@' -f1 使用 和相似的模式匹配,

在red hat中,我可以使用'i'标志/regex/i 在solaris中,它不起作用,我正在寻找一种方法来实现它。 我的剧本是:

ls -1 /webapp/dir/bin | awk '/AR[0-9]+/ && /SMF_LOG/ {dp_pkg=substr($NF,index($NF,"AR")+2); print $NF"@"dp_pkg}' | sort -k2 -t '@' -nr | head -n1 | cut -d'@' -f1
使用


和相似的模式匹配,而不是规则中的
索引
。或者,如果这是一个选项,请在处理所有字符之前将其转换为大写(或小写),例如,使用
tr“[A-Z]”“[A-Z]”
”这可能适用于您:

echo abc | awk '{temp=toupper($0)} temp ~ /ABC/'
abc

嗯,但是我索引($NF,“AR”)。。。。“AR”是常数。使用tr会使我丢失ls的原始大小写。我需要它来复制文件,这就是为什么我建议用模式匹配函数替换索引。既然你想复制文件,你能用你想在哪里复制什么来重新表述这个问题吗?也就是说,告诉我们实际的问题,而不是这个特定解决方案尝试的问题:-)问题是,ls-1给出了一个以AR123-1或AR123或AR542或一些自然数数字结尾的目录列表,并可选地给出了一个“-1”或“-2”(a“-”和一些数字)我想根据这个ARXXXXX东西对我的结果进行排序可选的
-
之前总是有3位数字吗?
AR
也可以是
AR
?请提供一份合理完整的文件名列表以及排序后的输入内容。我认为这可以通过
排序
来解决。PS:
ls-1
是冗余的:如果输出不是到终端,
ls
总是每行输出一个文件。
echo abc | awk '{temp=toupper($0)} temp ~ /ABC/'
abc