escaped (
имеет особое значение в sed
: он использовался для обратных ссылок . Для сравнения буквального значения (
, просто используйте его без обратной косой черты: /VALUES ([0-9]/d!
Если вы пытаетесь найти совпадение с \(
, то вместо этого используйте \
: \\(
Побег (пробел) не имеет значения.
Попробуйте следующее:
$ awk 'FNR==NR{a[$2$3$5];next} ($5$4$(NF-1)) in a' file1 file2
1 Jul 28 04:15 2014-07-28 id920767(group2)[attribute3 attribute4 .... attribute n] Tunneling: User with IP 10.111.8.25 connected
1 Jul 28 04:16 2014-07-28 ID926072(group3)[attribute1 attribute2] Tunneling:User with IP 10.111.8.12 connected
awk 'NR == FNR {t=($4 $5 $(NF-1));
$1=$2=$3=$4=$5=X;
$0=$0; $1=$1;
sub(/].*$/, "]");
a[t] = $0; next}
($3 $2 $5) in a {$4 = ($4 " " a[$3 $2 $5])}1' file2 file1