1 votes

cat command replace text Linux Shell Shell

J'ai un fichier Shell Shell. Dans celui-ci, il y a du code comme : <tag>port:8080</tag> .
Je veux remplacer cette ligne de code par une autre ligne de code : <tag>port:3128</tag> .
Comment je fais ça ?
J'ai utilisé cat mais il a supprimé toutes les lignes de code et n'a ajouté que cette ligne de code. Quelqu'un peut-il me dire comment remplacer le texte dans le script Shell ?
C'est comme ça que je l'ai essayé :

cat <<EOF > /home/samples/pom.xml
<tag>port:3128</tag>
EOF

0voto

noleti Points 3943

En supposant que votre fichier est YOURFILE dans le répertoire courant, essayez sed -i 's/8080/3128/g' YOURFILE

Cela remplacera toutes les occurrences de 8080 par 3128.

0voto

Pabi Points 7085

Le commandement général est sed -i 's/old/new/g' yourfile .
Mais vous devez échapper aux caractères spéciaux avec \ .

Donc la commande est : sed -i 's/<tag>port:8080<\/tag>/<tag>port:3128<\/tag>/g' /home/samples/pom.xml

Pour le chemin, c'est : :
sed -i 's/<path>home\/user\/location<\/path>/<path>\/user\/tmp\/location2<\/path>/g' /path/to/file

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X