UPDATE 1 for Mr. Pedantic :
# gawk profile, created Sat Apr 22 04:14:46 2023
# BEGIN rule(s)
BEGIN {
1 FS = RS
1 OFS = "\f\r\t\t\t"
1 CONVFMT = "%.250g"
}
1 ($++NF = escQ(__ = $!_))^_ + \
($++NF = shellQ(__))^_ + \
($++NF = printfQ(__))^_
3 function escQ(__,_)
{
3 return substr("", _ = "\47",
-gsub(_, (_) "\\" (_)_,__))__)
}
2 function shellQ(__, _)
{
2 return (_ = "\47") escQ(__)_
}
1 function printfQ(__, _)
{
1 return " printf " (_ = "\47") "%s"(_)" " shellQ(__)
}
nawk :: ain't got nothin'
ain'\''t got nothin'\''
'ain'\''t got nothin'\'''
printf '%s' 'ain'\''t got nothin'\'''
mawk1 :: ain't got nothin'
ain'\''t got nothin'\''
'ain'\''t got nothin'\'''
printf '%s' 'ain'\''t got nothin'\'''
mawk2 :: ain't got nothin'
ain'\''t got nothin'\''
'ain'\''t got nothin'\'''
printf '%s' 'ain'\''t got nothin'\'''
gawk -Se :: ain't got nothin'
ain'\''t got nothin'\''
'ain'\''t got nothin'\'''
printf '%s' 'ain'\''t got nothin'\'''
gawk -ce :: ain't got nothin'
ain'\''t got nothin'\''
'ain'\''t got nothin'\'''
printf '%s' 'ain'\''t got nothin'\'''
gawk -Pe :: ain't got nothin'
ain'\''t got nothin'\''
'ain'\''t got nothin'\'''
printf '%s' 'ain'\''t got nothin'\'''
gawk -Me :: ain't got nothin'
ain'\''t got nothin'\''
'ain'\''t got nothin'\'''
printf '%s' 'ain'\''t got nothin'\'''
gawk -re :: ain't got nothin'
ain'\''t got nothin'\''
'ain'\''t got nothin'\'''
printf '%s' 'ain'\''t got nothin'\'''
gawk -p- -be :: ain't got nothin'
ain'\''t got nothin'\''
'ain'\''t got nothin'\'''
printf '%s' 'ain'\''t got nothin'\'''
echo $'AAAAAAAA.BBBBB-BBB.jpg\nDDDDDDDDD.EEEEEEE-EEEEEE.TXT' | gtee >( gcat -n >&2 ) |
1 AAAAAAAA.BBBBB-BBB.jpg
2 DDDDDDDDD.EEEEEEE-EEEEEE.TXT
nawk '(__=$-_) sub(".+", "mv -v \47"(__)"\47 \47&\47",
$!(NF = NF))^_' FS='[.].+[.]' OFS=.
{m,g}awk 'sub(".+", "mv -v \47"($_)"\47 \47&\47",
$!(NF = NF))^_' FS='[.].+[.]' OFS=.
mv -v 'AAAAAAAA.BBBBB-BBB.jpg' 'AAAAAAAA.jpg'
mv -v 'DDDDDDDDD.EEEEEEE-EEEEEE.TXT' 'DDDDDDDDD.TXT'
...then pipe the output to any light weight shell like dash
for execution.
(nawk
has a race condition so the original $0
must first be saved, but neither mawk
nor gawk
has this issue)