入力する:
user@server:~/bar/foobar$ SAT=$(date -dsaturday +%Y-%m-%d); SUN=$(date -dsunday +%Y-%m-%d)
user@server:~/bar/foobar$ awk 'BEGIN {FS="'^'"} {print $1"\t"$3"\t"$6}' STs.csv STt.csv | egrep -w "${SAT}|${SUN}" | sort -u
'ST30074650' '2015-10-17 10:00'
'ST30074650' '[email protected]' '2015-10-17 10:00'
'ST30085367' '[email protected]' '2015-10-18 13:00'
'ST30086369' '2015-10-17 13:00'
'ST30115016' '[email protected]' '2015-10-18 13:00'
'ST30124587' '2015-10-18 09:00'
'ST30123591' '2015-10-18 09:00'
user@server:~/bar/foobar$
希望の出力:
user@server:~/bar/foobar$ SAT=$(date -dsaturday +%Y-%m-%d); SUN=$(date -dsunday +%Y-%m-%d)
user@server:~/bar/foobar$ awk 'BEGIN {FS="'^'"} {print $1"\t"$3"\t"$6}' STs.csv STt.csv | egrep -w "${SAT}|${SUN}" | sort -u | SOMEMAGIC
'ST30074650' '[email protected]' '2015-10-17 10:00'
'ST30085367' '[email protected]' '2015-10-18 13:00'
'ST30086369' '2015-10-17 13:00'
'ST30115016' '[email protected]' '2015-10-18 13:00'
'ST30124587' '2015-10-18 09:00'
'ST30123591' '2015-10-18 09:00'
user@server:~/bar/foobar$
質問:したがって、最初の列が繰り返される場合(例: "ST30074650") - 長い行だけを維持する必要があります。 「SOMEMAGIC」の誰かがどのようにこれを行うことができますか?
ベストアンサー1
私はSOMEMAGICがそれとどのように関連しているか理解していません
このawkファイルを試してください
{ if ( $1 in a ) {
if ( length(a[$1]) < length($0)) a[$1]=$0 ;
} # $1 in a
else a[$1]=$0 ; }
END { for ( b in a ) {print a[b] ;} }
使用してください(事前に並べ替える必要はありません)
... egrep -w "${SAT}|${SUN}" | awk -f u.awk | sort