J'ai un fichier avec contenu comme J'ai besoin de convertir ce type de chaînes comme ceci: p> donc, < Code> 12345 code> devrait aboutir à Merci. P> P> abcde code>. Je veux y parvenir via la coquille (bash). Quelle est la meilleure façon de faire cela? P>
5 Réponses :
Dans n'importe quel shell, vous pouvez utiliser: ou, en bash et sans tuyau: p> (où le double Les citations pourraient ne pas être nécessaires, mais je les utiliserais pour être sûr). P> P>
Correction d'un bogue dans votre 2e exemple
avec l'opérateur de carte de SED.
sed 'y/12345/hWa!-/' <<< '2313134'
tr 0123456789 abcdefghij < filename
tr code> est un filtre pur - il ignore les arguments du nom de fichier
echo 12345 | tr '[0-9]' '[a-j]'
Dis si je dois faire l'Aliter. Carte des mots vers des chiffres. Qui est, a-> 1, b-> 2 ... et ainsi de suite. Pourquoi ne pas echo bonjour | TR '[A-Z]' '[1-26]' CODE> travail?
@ user3426358 Parce que SED ne traduit que des caractères uniques. Même la traduction tr 'z' '26' code> seul n'est pas possible. Voir aussi y a-t-il une tr pour traduire dans des chaînes plus longues < / a>.
Il y a plus d'une façon de le faire:
C'est assez obscur et indirect, même pour Perl. Il pourrait être approprié d'utiliser l'opérateur tr /// code> ... mais alors, c'est Perl et TMTOWTDI.
Vous pouvez noter que si
a code>
0 code>,
b code> ⟶
1 code>, puis
12345 code> Si cartographier sur
BCDEF code> et non
abcde code>.