Προς το περιεχόμενο

UNIX => Εντολές Find & Grep


euoukos

Προτεινόμενες αναρτήσεις

Καλημέρα σας!

 

Λοιπόν, χρειάζομαι βοήθεια σε εντόλή find σε UNIX.

Έχω συντάξει την ακόλουθη έκφραση

find . | xargs grep someting > ./temp

με την οποία αναζητώ τα αρχεία που περιέχουν την λέξη someting μέσα στο ίδιο directory και αποθηκεύει τα ονόματα των αρχείων σε ένα file, που το ονομάζω temp.

 

Η ερώτησή μου είναι πως μπορώ να ορίσω μια έκφραση που να ορίζει ότι επέλεξε όλα τα someting όχι όμως αυτά που έχουν έστω τη λέξη not μπροστά από το someting, ανεξαρτήτων spaces,

δηλαδή

"επέλεξε όλα τα αρχεία που έχουν τη λέξη someting ανά γραμμή, αλλά μη λάβεις υπόψην σου αυτά που έχουν την έκφραση "not someting", "...not ... someting...." κλπ, και να κάνει replace τη λέξη someting με κάποια άλλη, π.χ. nothing."

 

Ευχαριστώ εκ των προταίρων.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Για δοκίμασε αυτό:

>
grep -Ro something * | sed 's\:.*\\g' > temp1 && grep -Ro not.*something * | sed 's\:.*\\g' > temp2 && diff temp1 temp2 | grep '<' | sed 's\< \\g' > results

Στο results πρέπει να αναγράφονται τα ονόματα των αρχείων που θες.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Για δοκίμασε αυτό:

>
grep -Ro something * | sed 's\:.*\\g' > temp1 && grep -Ro not.*something * | sed 's\:.*\\g' > temp2 && diff temp1 temp2 | grep '<' | sed 's\< \\g' > results

Στο results πρέπει να αναγράφονται τα ονόματα των αρχείων που θες.

 

Σε ευχαριστώ πολύ... θα το δοκιμάσω και θα ενημερώσω! :razz: :-P :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...