euoukos Δημοσ. 9 Ιανουαρίου 2007 Δημοσ. 9 Ιανουαρίου 2007 Καλημέρα σας! Λοιπόν, χρειάζομαι βοήθεια σε εντόλή find σε UNIX. Έχω συντάξει την ακόλουθη έκφραση find . | xargs grep someting > ./temp με την οποία αναζητώ τα αρχεία που περιέχουν την λέξη someting μέσα στο ίδιο directory και αποθηκεύει τα ονόματα των αρχείων σε ένα file, που το ονομάζω temp. Η ερώτησή μου είναι πως μπορώ να ορίσω μια έκφραση που να ορίζει ότι επέλεξε όλα τα someting όχι όμως αυτά που έχουν έστω τη λέξη not μπροστά από το someting, ανεξαρτήτων spaces, δηλαδή "επέλεξε όλα τα αρχεία που έχουν τη λέξη someting ανά γραμμή, αλλά μη λάβεις υπόψην σου αυτά που έχουν την έκφραση "not someting", "...not ... someting...." κλπ, και να κάνει replace τη λέξη someting με κάποια άλλη, π.χ. nothing." Ευχαριστώ εκ των προταίρων.
capthookb Δημοσ. 9 Ιανουαρίου 2007 Δημοσ. 9 Ιανουαρίου 2007 Για δοκίμασε αυτό: > grep -Ro something * | sed 's\:.*\\g' > temp1 && grep -Ro not.*something * | sed 's\:.*\\g' > temp2 && diff temp1 temp2 | grep '<' | sed 's\< \\g' > results Στο results πρέπει να αναγράφονται τα ονόματα των αρχείων που θες.
euoukos Δημοσ. 11 Ιανουαρίου 2007 Μέλος Δημοσ. 11 Ιανουαρίου 2007 Για δοκίμασε αυτό: > 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
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.