J’ai deux commandes:
cat BIG_DATAfinal.txt | grep "STATUS" | awk '{print $5}' cat BIG_DATAfinal.txt | grep "start" | awk '{print $3}' | sed 's/time;//g'
Je veux concaténer ces deux commandes dans un fichier.
Exemple:
RAPPORT D’ÉTAT POUR LE TRAVAIL: CargaDestino
- Comment rechercher un répertoire de fichiers en utilisant un autre fichier en entrée et envoyer la sortie vers un autre fichier?
- Conversion du script Unix ImageMagick en fichier batch Windows
- Comment effectuer un sorting sur tous les fichiers d’un répertoire?
- Comparer des fichiers sur la ligne de commande unix
- unix redirige la queue vers le fichier
Généré: 2016-06-17 10:52:14
Heure de début d’emploi; 2015-03-30 13:11:45
Heure de fin d’emploi; 2016-06-17 10:52:14
Job temps écoulé, 10677: 40: 29
Statut du travail; 99 (Non exécuté)
Le résultat attendu serait:
CargaDestino; 2015-03-30
Merci beaucoup!
Par exemple:
a=`cat BIG_DATAfinal.txt | grep "STATUS" | awk '{print $5}'` b=`cat BIG_DATAfinal.txt | grep "start" | awk '{print $3}' | sed 's/time;//g'` echo "$a;$b"
Vous pouvez le faire avec un seul programme awk:
awk -v OFS=";" ' /STATUS/ {status=$5} /start/ {split($3, a, /;/); start=a[2]} status && start {print status, start; status=start=""} ' BIG_DATAfinal.txt
Si la sortie ressemble à ;2015-03-30o
, alors votre fichier a des fins de ligne \r\n
, et vous devriez le faire:
sed 's/\r$//' BIG_DATAfinal.txt | awk -v OFS=";" ' /STATUS/ {status=$5} /start/ {split($3, a, /;/); start=a[2]} status && start {print status, start; status=start=""} '