erreur dans le codage Unix et sed

J’ai deux questions. La première est que parfois, lorsque je code sous Unix et que je saisis une commande et que je le fais mal, je reçois une nouvelle ligne sans mon message et peu importe ce que je tape, rien ne se produit avant de rentrer. Est-ce que quelqu’un sait pourquoi cela se produit?

Deuxièmement,

J’ai un fichier composé de: données d’ espace de nom de fichier dont j’ai besoin pour obtenir les données, j’ai entendu dire que je devais utiliser awk ou sed mais je ne suis pas sûr de savoir comment le faire. Toute aide est la bienvenue.

Dennis a déjà bien répondu à ta première question. (Note: veuillez ne poser qu’une seule question à la fois!)

Pour votre deuxième question, cela peut être fait beaucoup plus simplement.

awk '{ print $2 }' yourfile 

Par défaut, awk utilise l’espace comme séparateur de colonne, donc cela indique simplement à awk d’imprimer la deuxième colonne. Si vous souhaitez que la sortie soit envoyée à un nouveau fichier, procédez comme suit:

 awk '{ print $2 }' yourfile > newfile 

Première question:

Entrez echo " et cela se produira. Unix supporte les commandes multi-lignes.

Exemple:

 echo " is a multi-line command" 

Tapez " et entrez pour terminer.

Deuxième question:

Voici un lien vers un bon tutoriel AWK: Awk – Un tutoriel et une introduction

Essentiellement, vous utilisez

 awk '{ print "echo " $2 }' filename | sh 

par exemple, pour faire écho à toutes les données.

$2 accède au deuxième bloc d’informations de chaque ligne (les morceaux sont séparés par des espaces).

print "echo " $2 provoquera la sortie des echo data awk.

Enfin, vous passez à sh pour exécuter la commande de la sortie de awk.