-1
votes

Commande UNIX à lire et à couper le motif particulier

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)


1 commentaires

Donc, il y a une entrée, et à partir de toutes les lignes, vous souhaitez obtenir une ligne commençant par HDFS: // noms / et extraire la pièce entre / et et '?


4 Réponses :


0
votes

Avez-vous essayé avec MOINS COMMANDER ?

less -p "pattern" <filename>


2 commentaires

'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?



0
votes

Soit vous êtes sous Linux ou MacOS, cela pourrait fonctionner:

grep -oP "hdfs://names\K.+?(?=\')" file


1 commentaires

Les regards de surveillance avec un caractère de caractère sans aucun sens, juste \ k [^ '] * serait plus simple à la place.



0
votes
  • Si vous voulez que la ligne contienne votre motif:

    grep "/ poc / dev / string / correspondant" fichier

    La sortie sera la suivante: 'HDFS: // noms / poc / dev / string / correspondez'

    • Si vous voulez le motif exact sans toute la ligne, vous pouvez ajouter -o option à la commande:

      grep -o "/ poc / dev / string / correspondance"

      La sortie sera la suivante: / poc / dev / chaîne / correspondance


0 commentaires

0
votes

A gnu awk version xxx


0 commentaires