SQL の in 句を編集するときがたまにあります。
テキストエディタでシングルクオートを付与したり、置換などして加工しますが、こんなときこそさくっと加工したいところです。
また、 in 句が縦に長いとコピペなどにも苦労するので、数個単位でまとめてみました。
サンプルは4個単位でまとめています。
echo 'A001
A002
A003
A004
A005
A006
A007
A008
A009
A010
A011' \
| awk '
BEGIN {
SQ="\047"
}
count++ {
printf ","
}
{
printf SQ $0 SQ
}
!(count%4) {
printf "\n"
}
'
結果は以下のように表示されます。
'A001', 'A002', 'A003', 'A004'
, 'A005', 'A006', 'A007', 'A008'
, 'A009', 'A010', 'A011'
こちらでも良さそうです。
echo 'A001
A002
A003
A004
A005
A006
A007
A008
A009
A010
A011' \
| awk '
BEGIN {
SQ="\047"
}
count++ {
print ","
}
{
printf SQ $0 SQ
}
' \
| paste - - - -
結果は以下のように表示されます。
'A001', 'A002', 'A003', 'A004',
'A005', 'A006', 'A007', 'A008',
'A009', 'A010', 'A011'