24 lines
446 B
Awk
24 lines
446 B
Awk
# usage: awk -f rot13.awk
|
|
BEGIN {
|
|
for(i=0; i < 256; i++) {
|
|
amap[sprintf("%c", i)] = i
|
|
}
|
|
for(l=amap["a"]; l <= amap["z"]; l++) {
|
|
rot13[l] = sprintf("%c", (((l-amap["a"])+13) % 26 ) + amap["a"])
|
|
}
|
|
FS = ""
|
|
}
|
|
{
|
|
o = ""
|
|
for(i=1; i <= NF; i++) {
|
|
if ( amap[tolower($i)] in rot13 ) {
|
|
c = rot13[amap[tolower($i)]]
|
|
if ( tolower($i) != $i ) c = toupper(c)
|
|
o = o c
|
|
} else {
|
|
o = o $i
|
|
}
|
|
}
|
|
print o
|
|
}
|