Linux underground

sed

Exemples

Supprimer les espaces de fin de ligne :

$ sed -i -e "s/[[:space:]]*$//" monfichier.c

Supprimer les espaces de début de ligne :

$ sed -i -e "s/^[[:space:]]*//" monfichier.txt

Commenter les lignes commançant par "dev-python" :

$ sed -i -e "s/^\(dev-python.*\)/# \1/" /etc/portage/package.accept_keywords/temp

Ajouter des délimiteurs à un fichier .csv qui en est dépourvu :

$ sed -i -e 's|^|"|;s|;|";"|g;s|$|"|' monfichier.csv

Modification par lot :

L'exemple avec le grep pourra être plus efficace dans certains cas puisqu'il va déjà éliminer les fichiers qui ne remplissent pas la condition de substitution du sed. Par contre avec l'option -exec du find, on pourra se passer de la technique du pipe-line et de xargs.

$ grep -rl PYTHON_COMPAT= linuxunderground-overlay/dev-python | xargs sed -i -e "/PYTHON_COMPAT=/ s/{5,6}/{5,6,7}/"

$ find linuxunderground-overlay/dev-python -name "*ebuild" -exec sed -i -e "/PYTHON_COMPAT=/ s/{5,6}/{5,6,7}/" {} \;

lien

https://www.commentcamarche.net/faq/4839-sed-supprimer-une-ou-plusieurs-lignes-d-un-fichier.


Contact