J'essaie d'ajouter la première ligne de texte (la date) au début de chaque ligne dans le reste du fichier texte. Quelqu'un peut-il aider? J'utilise un bash pour extraire les données dans le fichier texte affiché. (complètement nouveau dans ce domaine)
Fichier texte comme indiqué ci-dessus
Fichier texte actuel:
Date (from first line); Host: 192.168.1.3; Status: Up Date (from first line); Host: 192.168.1.5; Status: Up Date (from first line); Host: 192.168.1.6; Status: Up
Je veux que le fichier texte lise:
Sun Apr 7 14:16:30 Host: 192.168.1.3; Status: Up Host: 192.168.1.5; Status: Up Host: 192.168.1.6; Status: Up
4 Réponses :
awk -v OFS='; ' 'NR==1{d=$0;next}{print d,$0}' file
Vous pouvez également définir OFS = '; '
puis print d, $ 0
- un peu plus facile à lire.
ou plus facile à lire: awk '{if (NR == 1) {date = $ 0} else {print date ";" $ 0}}' file
@Cyrus qui ne ressemble même pas à un awk
@oguzismail: Ouais, c'est trop facile;)
@Cyrus laisse quand même ton commentaire y rester peut-être que cela aide l'op à mieux comprendre s'il n'est pas familier avec awk
Ci-dessous awk
aiderait:
Date Sun Apr 7 14:16:30; Host: 192.168.1.3; Status: Up Date Sun Apr 7 14:16:30; Host: 192.168.1.5; Status: Up Date Sun Apr 7 14:16:30; Host: 192.168.1.6; Status: Up
Exemple de sortie
awk 'NR==1{Date="Date" FS $0 ";" FS}NR!=1{print Date $0}' file
p >
Cela pourrait fonctionner pour vous (GNU sed):
sed '1h;1d;G;s/\(.*\)\n\(.*\)/Date \2; \1/' file
Faites une copie de la première ligne.
Supprimez la première ligne.
Ajoutez la première ligne à la ligne actuelle.
Réorganisez la première ligne pour qu'elle soit devant la ligne actuelle et qu'elle soit précédée du littéral Date
et suivie de ;
essayé sur gnu awk, par respect pour la 1ère ligne #
awk '$0~/\s*(Sun|Mon|Tue|Wed|Thu|Fri|Sat)/{a=$0;next}{print "Date "a,$0}' d
par respect pour le motif
awk 'NR==1{a=$0;next}{print "Date "a,$0}' d
Veuillez mettre un échantillon dans la question. Vous devez également montrer votre tentative, sous forme de code, ici.
Veuillez ajouter un exemple d'entrée et la sortie souhaitée pour cet exemple d'entrée à votre question.
Cette question nécessite-t-elle encore plus d'informations? Toutes mes excuses, c'est ma première fois ...
La seule chose qui manque encore pour en faire une bonne question pour ce forum est votre tentative de la résoudre vous-même, peu importe à quel point vous pensez qu'ils étaient.
Veuillez consulter: Que dois-je faire lorsque quelqu'un répond à ma question?