2017-09-29 1 views
1

J'ai un fichier test.sh. Dans ce mon contenu ressembletrouver la colonne particulière où la chaîne correspond

Nas /mnt/enjayvol1/backup/test.sh lokesh 
thinclient rsync /mnt/enjayvol1/esync/lokesh.sh lokesh 
crm rsync -arz --update /mnt/enjayvol1/share/mehul mehul mehul123 

Je veux récupérer la chaîne où le contenu/mnt

match, je veux la ligne de sortie

/mnt/enjayvol1/backup/test.sh 
/mnt/enjayvol1/esync/lokesh.sh 
/mnt/enjayvol1/share/mehul 

J'ai essayé

grep -i "/mnt" test.sh | awk -F"mnt" '{print $2}' 

mais cela ne me donnera pas de résultat précis. S'il vous plaît aider

Répondre

1

approche court grep (en supposant que /mnt ... chemin ne contient pas les espaces blancs):

grep -o '\/mnt\/[^[:space:]]*' lokesh.sh 

La sortie:

/mnt/enjayvol1/backup/test.sh 
/mnt/enjayvol1/esync/lokesh.sh 
/mnt/enjayvol1/share/mehul 
+0

Merci @RomanPerekhrest – LOKESH

+0

@LOKESH, vous êtes les bienvenus – RomanPerekhrest

2

Pouvez-vous S'il vous plaît essayez de suivre l'approche awk aussi et laissez-moi savoir si cela vous aide.

awk -v RS=" " '$0 ~ /\/mnt/' Input_file 

La sortie sera la suivante.

/mnt/enjayvol1/backup/test.sh 
/mnt/enjayvol1/esync/lokesh.sh 
/mnt/enjayvol1/share/mehul 

Explication: Faire séparateur d'enregistrement comme l'espace, puis vérifier si une ligne chaîne a/mnt en elle, si oui, alors ne pas mentionner toute action si par impression par défaut se produira. Donc, il va imprimer ces lignes qui ont/mtn piquent en eux.

+0

Vous n'avez pas à s'échapper/mnt / –