J'ai utilisé une commande AWK pour trouver une ligne particulière dans un fichier et souhaite la compenser dans un deuxième fichier. Quelqu'un peut-il m'aider à cet égard? P>
4 Réponses :
Je CAT (1) CODE> La ligne dans un fichier factice,
chat code> le deuxième fichier en après, puis écrasez le deuxième fichier avec le mannequin. Recherchez la commande
SPONGE (1) CODE>, qui vous permet de faire le "naturel" (mais incorrect)
awk ... | CAT - Deuxième fichier> Deuxième fichier code> p>
Je veux ajouter la nouvelle ligne à la première ligne existante dans le deuxième fichier
La réponse courte est que vous ne pouvez pas. Vous aurez besoin d'un fichier temporaire.
sed -i 's/\(line you want\)/Prefix \1/g' origfile
Cela ajoute le texte comme première ligne et la première ligne précédente en deuxième ligne, mais je veux en faire une ligne
C'est un peu plus facile alors. Édité.
+1 Aussi: SED -I '/ Ligne que vous souhaitez / S / ^ / PREFIX / G' D'ORIGFILE CODE> ou
SED -I '1S / ^ / PREFIX / G' MIEL CODE> (Ce dernier est basé sur la réponse de soi de l'OP)
awk '{if(NR==1){print "text" $0}else{print }}' O/Pfile temp mv temp O/Pfile
Plus court: awk 'nr == 1 {imprimé "texte" $ 0}' O / Pfile> TEMP; MV TEMP O / PFILE CODE>
Différentes façons de préparer une ligne:
cat file_to_prepend file|sponge file { rm file;cat file_to_prepend ->file; }<file sed -i '1{h;s/.*/cat file_to_prepend/ep;g}' file # GNU printf %s\\n '0r file_to_prepend' w|ed -s file sed -i -e 1rfile_to_prepend -e '1{h;d}' -e '2{x;G}' file
"Ajouter" signifie attacher après. Vous ne pouvez pas "ajouter" quelque chose au début de quelque chose d'autre. Il y a un mot pour cela: " prépendez ".