Acrobase  

Καλώς ήρθατε στην AcroBase.
Δείτε εδώ τα πιο πρόσφατα μηνύματα από όλες τις περιοχές συζητήσεων, καθώς και όλες τις υπηρεσίες της AcroBase.
H εγγραφή σας είναι γρήγορη και εύκολη.

Επιστροφή   Acrobase > Υπολογιστές και Τεχνολογία > Πληροφορική και Επικοινωνία > Linux
Ομάδες (Groups) Τοίχος Άρθρα acrobase.org Ημερολόγιο Φωτογραφίες Στατιστικά

Notices

Δεν έχετε δημιουργήσει όνομα χρήστη στην Acrobase.
Μπορείτε να το δημιουργήσετε εδώ

Απάντηση στο θέμα
 
Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 29-04-09, 12:43
Το avatar του χρήστη Gildor
Gildor Ο χρήστης Gildor δεν είναι συνδεδεμένος
High Elf
 

Τελευταία φορά Online: 08-05-17 14:17
Φύλο: Δεν έχω αποφασίσει ακόμα
Η διαθεσή μου τώρα:
να παραγγειλω ενα σκριπτ;;

Θελω να κανω τα εξης :Ρ

ας πουμε οτι εχω ενα αρχειο κειμενου με ονοματα (ενα σε καθε γραμμη), με ονομα "ακαλεστοι", και ενα αλλο που λεγεται "καλεσμενοι".

ψαχνω λοιπον ενα σκριπτακι που θα κοιταζει μια-μια γραμμη στο "καλεσμενοι". Εαν το ιδιο ονομα υπαρχει και στο "ακαλεστοι", θα σβηνεται απο εκει

Ξερω οτι για καποιον που ξερει καλα το sed ειναι ζητημα μιας γραμμης... αν εχετε την καλωσυνη λοιπον..
__________________
Υπάρχουν σε όλα δύο απόψεις...
Αυτή που λέω εγώ, και η σωστή!
Απάντηση με παράθεση
  #2  
Παλιά 29-04-09, 13:00
Το avatar του χρήστη Morgul
Morgul Ο χρήστης Morgul δεν είναι συνδεδεμένος
Άσωτος διαχειριστής
 

Τελευταία φορά Online: 26-03-22 21:02
Φύλο: Δεν έχω αποφασίσει ακόμα
Κάπως μικρό «script» (ή μάλλον εντολή):

Κώδικας:
grep -vf καλεσμένοι ακάλεστοι > ακάλεστοι2
Κάθε γραμμή στο αρχείο καλεσμένοι είναι ένα regular expression (όχι απλό string). Η εντολή γράφει στο ακάλεστοι2 όλες τις γραμμές του ακάλεστοι εκτός απ'όσες ταιριάζουν σε οποιοδήποτε regular expression του αρχείου καλεσμένοι.

Αν δε θέλεις regular expressions (πχ χρησιμοποιείς τελείες κλπ), δοκίμασε fgrep αντί για grep.

Τελευταία επεξεργασία από το χρήστη Morgul : 29-04-09 στις 13:02
Απάντηση με παράθεση
Οι παρακάτω χρήστες έχουν πει 'Ευχαριστώ' στον/στην Morgul για αυτό το μήνυμα:
Gildor (29-04-09)
  #3  
Παλιά 30-04-09, 00:56
Qluser Ο χρήστης Qluser δεν είναι συνδεδεμένος
Μέλος
 

Τελευταία φορά Online: 24-02-23 19:01
Το grep είναι μάλλον η πιο απλή λύση, αλλά για τέτοιου είδους προβλήματα το μυαλό μου συνήθως πάει στην comm(1). Το μειονέκτημα αυτής είναι ότι προυποθέτει ήδη ταξινομημένα αρχεία, αλλά το bash έχει ένα ενδιαφέρον κόλπο (process substitution) που βοηθάει να αποφύγουμε προσωρινά αρχεία, μεγάλα pipelines κλπ:

Κώδικας:
comm -1 -3 <(sort καλεσμένοι) <(sort ακάλεστοι) > ακάλεστοι2
Απάντηση με παράθεση
  #4  
Παλιά 30-04-09, 01:38
Το avatar του χρήστη Gildor
Gildor Ο χρήστης Gildor δεν είναι συνδεδεμένος
High Elf
 

Τελευταία φορά Online: 08-05-17 14:17
Φύλο: Δεν έχω αποφασίσει ακόμα
Η διαθεσή μου τώρα:
Ασχετο, αλλα πως μπορουμε να κανουμε το output του comm να ειναι αναγνωσιμο μεσω pipe του less?

Στην κονσολα εχει χρωματα, αλλα ως pipe, εχει σκουπιδακια
__________________
Υπάρχουν σε όλα δύο απόψεις...
Αυτή που λέω εγώ, και η σωστή!
Απάντηση με παράθεση
  #5  
Παλιά 30-04-09, 08:59
Το avatar του χρήστη Morgul
Morgul Ο χρήστης Morgul δεν είναι συνδεδεμένος
Άσωτος διαχειριστής
 

Τελευταία φορά Online: 26-03-22 21:02
Φύλο: Δεν έχω αποφασίσει ακόμα
Αρχική Δημοσίευση από Gildor Εμφάνιση μηνυμάτων
Ασχετο, αλλα πως μπορουμε να κανουμε το output του comm να ειναι αναγνωσιμο μεσω pipe του less?

Στην κονσολα εχει χρωματα, αλλα ως pipe, εχει σκουπιδακια
Αυτό δεν είναι φυσιολογικό [1].

Τι ακριβώς είναι τα σκουπιδάκια; Κανονικά, για να κάνεις το less να μην ερμηνεύει terminal escape sequences για χρώματα (οπότε αυτά πάνε στο τερματικό σου και ερμηνεύονται όπως περιμένεις), του λες:

Κώδικας:
blah blah | less -R
Αν θες να γίνει το ίδιο για όλα τα escape sequences:

Κώδικας:
blah blah | less -r
Προσωπικά έχω ένα alias ls='ls -MMr' στο ~/.bashrc μου.

Πάντως το δικό μου comm(1) δεν βγάζει escape sequences αν αυτά δεν υπάρχουν ήδη στο αρχείο/-α. Σίγουρα είναι καθαρό/-α;


------
[1] Βλ. τελευταία παράγραφο πιο πάνω. Επίσης, τα προγράμματα που βγάζουν έγχρωμο output το βγάζουν μόνο αν το stdout τους είναι TTY. Αν δεν είναι TTY (πχ pipe, file, block device, κλπ) πρέπει να εξαναγκάσεις τη χρήση χρώματος. Πχ δίνεις --color στο ls(1).
Απάντηση με παράθεση
Απάντηση στο θέμα


Συνδεδεμένοι χρήστες που διαβάζουν αυτό το θέμα: 1 (0 μέλη και 1 επισκέπτες)
 
Εργαλεία Θεμάτων
Τρόποι εμφάνισης

Δικαιώματα - Επιλογές
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι σε λειτουργία

Που θέλετε να σας πάμε;


Όλες οι ώρες είναι GMT +3. Η ώρα τώρα είναι 14:53.



Forum engine powered by : vBulletin Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.