Je suis nouveau sur Linux. Je dois éditer un fichier .conf
à partir du terminal ouvert uniquement et sans utiliser d'éditeur de texte. Autrement dit, puis-je ajouter des mots et des phrases à un fichier de configuration à partir d'un terminal ouvert?
Exemple: command /home/.../file.conf -add 'abcd'
à la 23ème ligne et ainsi de suite. Et enfin, enregistrez-le.
Est-il possible de rechercher un mot spécifique dans ce fichier de configuration et d'ajouter un nouveau texte à la ligne suivante de ce fichier de configuration en utilisant uniquement la commande?
Je fais habituellement de cette façon lorsque je programme mon script pour faire la même chose que vous demandez, mais par programme.
echo "Hello you!" >> myfile.txt
echo "this is 2nd line text" >> file.txt
echo "last line!" >> file.txt
Voila! Tu l'as eu. Il est important de noter que >>
signifie que l’on ajoute une nouvelle ligne au fichier existant entre-temps >
tout simplement écraser tout.
Sed peut facilement ajouter des mots et des phrases à un fichier de configuration à partir d’un terminal ouvert.
sed -i '23iabcd' file.conf
insère à la ligne 23 le texte abcd
dans le fichier file.conf
-i
fait la modification directement dans le fichier file.conf
.
Si vous souhaitez utiliser awk
name__, alors:
awk -v n=23 -v s="abcd" 'NR == n {print s} {print}' file > file.conf
Le texte suivant ajoute une ligne après SearchPattern.
sed -i '/SearchPattern/aNew Text' SomeFile.txt
Il insère un nouveau texte une ligne sous chaque ligne contenant SearchPattern.
Pour ajouter deux lignes, vous pouvez utiliser un \
et entrer une nouvelle ligne lors de la saisie du nouveau texte.
sed -i '/pattern/a \
line1 \
line2' inputfile
Vous pouvez également utiliser la commande printf
.
Pour ajouter des lignes à votre fichier
$ printf "\nThis is a new line to your document" >> file.txt
Pour écraser le fichier
$ printf "This overwrites your file" > file.txt
awk '{if ($1 ~ /regex/) print $1 "content to be added"; else print $1}' < inputfile > outputfile
Remarques:
Comment ça marche:
inputfile
pour lire les lignes d'entrée, décochez outputfile
et ouvrez-le pour écrire les lignes de sortieJ'ai trouvé une solution à ma propre question à l'aide de la commande ed
ed -s /home/.../abc.conf <<< $'23i\ntext\n.\nwq'
Le texte peut contenir 27 lignes. Vous pouvez copier 27 lignes d'un fichier texte et coller 27 lignes dans votre fichier de configuration. Mais je dois exécuter la commande ed
simultanément afin d'ajouter plus de texte au même fichier de configuration.