Реализация шифра ROT13 в Bash: несколько методов с примерами кода

«rot13 в bash» относится к реализации шифра ROT13 на языке программирования Bash. ROT13 — это простой шифр замены букв, который заменяет каждую букву буквой, находящейся на 13 позиций впереди или позади нее в алфавите. Он обычно используется в качестве базовой формы шифрования.

Вот несколько способов реализации ROT13 в Bash с примерами кода:

Способ 1: использование команды tr

echo "Hello, World!" | tr 'A-Za-z' 'N-ZA-Mn-za-m'

Метод 2: использование команды awk

echo "Hello, World!" | awk '{ for (i=1; i<=length; ++i) { c=substr($0, i, 1); if (c ~ /[A-Za-z]/) { if (c ~ /[A-Ma-m]/) c=chr(13+ord(c)); else if (c ~ /[N-Zn-z]/) c=chr(ord(c)-13); } printf("%s", c); } }'

Способ 3: использование команды sed

echo "Hello, World!" | sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm/'

Метод 4: использование сценария bash

#!/bin/bash
rot13() {
    echo "$1" | tr 'A-Za-z' 'N-ZA-Mn-za-m'
}
plaintext="Hello, World!"
ciphertext=$(rot13 "$plaintext")
echo "$ciphertext"