J'ai un fichier contenant les lignes ci-dessous. Je veux lire le fichier et extraire uniquement / poc / dev / chaîne / correspondance code>.
La commande
grep code> dois-je utiliser pour obtenir une correspondance particulière.
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0
Logging initialized using configuration in jar:file:/app/cloudera-var/CDH-Parcels/parcels/CDH-5.13.3-1.cdh5.13.3.p0.2/jars/hive-common-1.1.0-cdh5.13.3.jar!/hive-log4j.properties
OK
'hdfs://names/POC/DEV/STRING/MATCH'
Time taken: 5.769 seconds, Fetched: 35 row(s)
4 Réponses :
Avez-vous essayé avec MOINS COMMANDER ?
less -p "pattern" <filename>
'HDFS: // Noms / Poc / Dev / String / Match' ne va pas à chaque fois. Fondamentalement, je voulais extraire le départ de / POC jusqu'au dernier avant '.
Si vous pouvez reconnaître ces lignes de '/ Poc', vous pouvez utiliser cette chaîne comme modèle, cela devrait fonctionner ... Ce que vous pensez?
Soit vous êtes sous Linux ou MacOS, cela pourrait fonctionner:
grep -oP "hdfs://names\K.+?(?=\')" file
Les regards de surveillance avec un caractère de caractère sans aucun sens, juste \ k [^ '] * code> serait plus simple à la place.
La sortie sera la suivante: La sortie sera la suivante: grep "/ poc / dev / string / correspondant" fichier code> p>
'HDFS: // noms / poc / dev / string / correspondez' code> p> p>
-o code> option à la commande: li>
ul>
grep -o "/ poc / dev / string / correspondance" code> p>
/ poc / dev / chaîne / correspondance code> p>
A gnu awk code> version
Donc, il y a une entrée, et à partir de toutes les lignes, vous souhaitez obtenir une ligne commençant par
HDFS: // noms / code> et extraire la pièce entre
/ code> et
et
' code>?