Général

Fg benne basculante et chat

Fg benne basculante et chat

Fg dump pipe et cat un nouveau fichier avec de nouvelles données.

UNE:

Vous pouvez utiliser cet awk :

awk '{print $2, $1}' fichier

ou

awk '{print $2, $1}' fichier | tr ' ' ' '

la sortie sera :

vidage de chat.sql

cat dump.sql.new

ou pour fichier2 :

awk '{print $2, $1}' file2 | tr ' ' ' '

la sortie sera :

vidage de chat.sql

cat dump.sql.new

Pour les fichiers 1 et 2, vous devez supprimer la nouvelle ligne :

awk '{print $2, $1}' fichier | tr ' ' ' ' | grep -vf fichier2.new | grep -vf fichier2.new.new | awk '{print $2, $1}' | grep -vf fichier2.new | awk '{print $2, $1}' | grep -vf fichier2.new | tr ' ' ' ' | awk '{print $2, $1}'

ou:

awk '{print $2, $1}' fichier | grep -vf fichier2.new | awk '{print $2, $1}' | grep -vf fichier2.new | tr ' ' ' ' | awk '{print $2, $1}'

UNE:

Cela peut fonctionner pour vous (GNU sed) :

sed -e ':a' -e '/file/!{/file/!ba,N,},/file2/!{N,ba},' -e's/$/ /' <,file

Comment cela marche-t-il?

Il démarre sed en mode :a, sans motif spécifié.

:a # démarre un modèle.

/déposer/! # si nous sommes dans un fichier contenant des lignes, ne faites rien.

# sinon, commencez un autre modèle.

/déposer/! # si nous sommes dans une ligne contenant le fichier2, ne rien faire.

# sinon, démarrez un autre modèle.

{ # enregistre ce modèle dans l'espace modèle,

N, # passer à la nouvelle ligne,

# puis commencez ce modèle.

} # arrêtez ce modèle et lancez-en un autre.

/fichier2/! # si nous sommes dans une ligne contenant le fichier2, ne rien faire.

# sinon, démarrez un autre modèle.

N, # passer à la nouvelle ligne,

# puis commencez ce modèle.

ba, # commence la fin du motif de ligne (c'est-à-dire

# "début d'une ligne, mais la ligne est vide").

Cela imprimera chaque ligne du premier fichier, suivi du deuxième fichier. Il supprime ensuite toutes les lignes vides sauf celles qui apparaissent à la fin du deuxième fichier, qui sont imprimées sur leur propre ligne.

L'essentiel à comprendre ici est que toutes les règles sont exécutées du début à la fin de chaque ligne du fichier d'entrée, mais seule la première ligne de la sortie est toujours affectée par ces règles. Le reste de la sortie n'est que les lignes du fichier suivant.

La seule chose qui peut affecter la sortie est de savoir si la ligne contns file ou file2, et si la ligne se termine par ou non.

Notez que l'utilisation de N ici signifie qu'il n'y a pas de ligne vide après la dernière ligne d'entrée dans le fichier, et la ligne vide après la dernière ligne de la sortie sera imprimée sur sa propre ligne.

Je l'ai écrit dans sed de cette manière car c'est plus simple, mais vous préférerez peut-être écrire votre propre solution awk. Je recommanderais d'utiliser la solution sed comme point de départ, puis de la modifier pour faire ce que vous voulez qu'elle fasse.

UNE:

Le sed GNU prend en charge l'option nq pour ne pas imprimer la ligne :

sed -n '/fichier/,/fichier2/{p,q}' fichier.txt

Cette option est également prise en charge par de nombreux autres outils, comme awk, fgrep, grep, etc.


Voir la vidéo: Grapple Saw Truck - Monster Maple Removal (Décembre 2021).