C’est ce que j’ai essayé: sed -i 's/^.*/"$&"/' myFile.txt
Il met un $ au début de chaque ligne.
C’est ici
sed 's/\(.*\)/"\1"/g'
plus court
sed 's/.*/"&"/'
sans espaces
sed 's/ *\(.*\) *$/"\1"/'
sauter les lignes vides
sed '/^ *$/d;s/.*/"&"/'
Vous avez presque bien compris. Essayez cette version légèrement modifiée:
sed 's/^.*$/"&"/g' file.txt
Vous pouvez également le faire sans groupe de capture:
sed 's/^\|$/"/g'
‘^’ correspond au début de la ligne et ‘$’ correspond à la fin de la ligne.
Le |
est une “alternance”, cela signifie simplement “OU”. Il doit être échappé ici [1], donc en anglais ^\|$
signifie “le début ou la fin de la ligne”.
“Remplacer” ces caractères est bien, cela ajoute du texte au début à la fin, nous pouvons donc remplacer "
, et append le g
à la fin pour une recherche globale pour correspondre aux deux à la fois.
[1] Malheureusement, il s’avère que | ne fait pas partie des “expressions régulières de base” de POSIX, mais fait partie des fonctionnalités “améliorées” qui peuvent être compilées avec le drapeau REG_ENHANCED, mais n’est pas par défaut sur OSX; s/^\(.*\)$/"\1"/
Humble tarte pour moi aujourd’hui.