-
Notifications
You must be signed in to change notification settings - Fork 0
/
lab5-2.txt
216 lines (216 loc) · 7.74 KB
/
lab5-2.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
±stud@vm2:~$ # Για την αναζήτηση του περιεχομένου αρχείων μπορούμε
±stud@vm2:~$ # να χρησιμοποιήσουμε τις εντολές more ή less. Όταν βρισκόμαστε
±stud@vm2:~$ # στο περιβάλλον των εντολών αυτών, μπορούμε να πατήσουμε
±stud@vm2:~$ # \keyword, όπου keyword η λέξη που θέλουμε να αναζητήσουμε.
±stud@vm2:~$ # Στη συνέχεια, θα μετακινηθεί το κείμενο στα ανάλογα σημεία
±stud@vm2:~$ # και θα μαρκαριστεί η λέξη που αναζητούμε. Πατώντας το
±stud@vm2:~$ # πλήκτρο \ όσες φορές επιθυμούμε, επαναλαμβάνουμε την πιο
±stud@vm2:~$ # πρόσφατη αναζήτηση μας.
±stud@vm2:~$ #
±stud@vm2:~$ # Μια ακόμη χρήσιμη εντολή είναι η grep, η οποία επιτρέπει
±stud@vm2:~$ # να πραγματοποιούμε αναζητήσεις στο περιεχόμενο αρχείων
±stud@vm2:~$ # με τη βοήθεια της γραμμής εντολών.
±stud@vm2:~$ #
±stud@vm2:~$ # Για παράδειγμα, η παρακάτω εντολή επιστρέφει όλες τις γραμμές
±stud@vm2:~$ # στο αρχέιο ls-manual που περιέχουν τη λέξη list:
±stud@vm2:~$ grep list ls-manual
§ ls - list directory contents
§ do not list implied . and ..
§ do not list implied entries ending with ~
§ -C list entries by columns
§ list directories themselves, not their contents
§ -g like -l, but do not list owner
§ in a long listing, don't print group names
§ follow symbolic links listed on the command line
§ do not list implied entries matching shell PATTERN (overridden
§ do not list implied entries matching shell PATTERN
§ -l use a long listing format
§ -m fill width with a comma separated list of entries
§ like -l, but list numeric user and group IDs
§ -o like -l, but do not list group information
§ list subdirectories recursively
§ -U do not sort; list entries in directory order
§ -x list entries by lines instead of by columns
§ -1 list one file per line. Avoid '\n' with -q or -b
§```
±stud@vm2:~$ #
±stud@vm2:~$ # Μπορούμε να περικλείουμε τη λέξη αναζήτησης σε εισαγωγικά ή όχι.
±stud@vm2:~$ #
±stud@vm2:~$ # Υπάρχει η δυνατότητα να πραγματοποιούμε περισσότερο
±stud@vm2:~$ # πολύπλοκες αναζητήσεις με τη χρήση ειδικών εκφράσεων που
±stud@vm2:~$ # ονομάζονται regular expressions. Π.χ. το σύμβολο ^ οδηγεί
±stud@vm2:~$ # στην αναζήτηση γραμμών που ξεκινούν από τη λέξη που ακολουθεί
±stud@vm2:~$ # το σύμβολο. Για παράδειγμα:
±stud@vm2:~$ grep "^GNU" ls-info
§GNU coreutils 8.32 February 2022 LS(1)
±stud@vm2:~$ #
±stud@vm2:~$ # Αυτή η εντολή θα επιστρέψει όλες τις γραμμές του αρχείου
±stud@vm2:~$ # ls-info που ξεκινούν με GNU.
±stud@vm2:~$ #
±stud@vm2:~$ # Μπορούμε ακόμα να αντιστρέψουμε το αποτέλεσμα της αναζήτησης
±stud@vm2:~$ # με την αξοποιήση της παραμέτρου v.
±stud@vm2:~$ #
±stud@vm2:~$ grep -v "a" ls-info
§
§NAME
§ ls - list directory contents
§
§SYNOPSIS
§ ls [OPTION]... [FILE]...
§
§DESCRIPTION
§ fied.
§
§ too.
§
§
§
§
§
§ --block-size=SIZE
§
§ do not list implied entries ending with ~
§
§ otherwise: sort by ctime, newest first
§
§ -C list entries by columns
§
§ --color[=WHEN]
§
§ -d, --directory
§ list directories themselves, not their contents
§
§ -D, --dired
§
§
§
§ --file-type
§
§
§ --full-time
§ like -l --time-style=full-iso
§
§ -g like -l, but do not list owner
§
§ --group-directories-first
§ group directories before files;
§
§
§ -G, --no-group
§
§
§ --si likewise, but use powers of 1000 not 1024
§
§
§
§
§ --hide=PATTERN
§
§ --hyperlink[=WHEN]
§
§
§ -i, --inode
§
§ -I, --ignore=PATTERN
§
§ -k, --kibibytes
§
§
§ -L, --dereference
§ itself
§
§
§ -n, --numeric-uid-gid
§
§
§
§
§
§
§
§ --quoting-style=WORD
§
§ -r, --reverse
§ reverse order while sorting
§
§ -R, --recursive
§ list subdirectories recursively
§
§ -s, --size
§
§
§ --sort=WORD
§ version (-v), extension (-X)
§
§ --time=WORD
§
§ with -l, WORD determines which time to show; with --sort=time,
§ sort by WORD (newest first)
§
§ --time-style=TIME_STYLE
§
§ -t sort by time, newest first; see --time
§
§
§ first
§
§ -U do not sort; list entries in directory order
§
§
§ -w, --width=COLS
§
§
§
§ -Z, --context
§
§ -1 list one file per line. Avoid '\n' with -q or -b
§
§
§ --version
§
§ so on.
§
§
§
§ 0 if OK,
§
§
§
§AUTHOR
§
§REPORTING BUGS
§
§COPYRIGHT
§
§SEE ALSO
§
±stud@vm2:~$ #
±stud@vm2:~$ # Δηλαδή, εμφανίστηκαν όλες οι γραμμές του αρχείου ls-info
±stud@vm2:~$ # που ΔΕΝ περιέχουν το γράμμα a. Υπενθυμίζουμε ότι το linux
±stud@vm2:~$ # διαχωρίζει τα κεφαλαία από τα μικρά γράμματα. Δηλαδή, η
±stud@vm2:~$ # εντολή επιστρέφει τις γραμμές που περιέχουν το
±stud@vm2:~$ # κεφαλαίο γράμμα A.
±stud@vm2:~$ #
±stud@vm2:~$ # Μπορούμε να αναζητήσουμε μια λέξη και να αναφερθεί και
±stud@vm2:~$ # ο αριθμός σειρών που εντοπίστηκαν:
±stud@vm2:~$ grep -n "directory" ls-info
§4: ls - list directory contents
§10: List information about the FILEs (the current directory by default).
§46: -d, --directory
§89: that points to a directory
§111: and per directory totals
§183: -U do not sort; list entries in directory order
§224: 1 if minor problems (e.g., cannot access subdirectory),
±stud@vm2:~$ #
±stud@vm2:~$ # Αυτή η εντολή επιστρέφει όλες τις γραμμές που περιέχουν
±stud@vm2:~$ # τη λέξη directory, εμφανίζοντας τον αριθμό κάθε γραμμής
±stud@vm2:~$ # μαζί με το περιεχόμενο της.
±stud@vm2:~$ #
±stud@vm2:~$ # Τέλος, μπορούμε να χρησιμοποιήσουμε την παράμετρο -c για
±stud@vm2:~$ # να μετρήσουμε πόσες φορές εντοπίσαμε την πληροφορία.
±stud@vm2:~$ grep -c "directory" ls-info
§7
±stud@vm2:~$ #
±stud@vm2:~$ # Τα παραπάνω είναι μερικά παραδείγματα χρήσης της εντολής
±stud@vm2:~$ # grep με βασικές παραμέτρους. Η εντολή grep είναι ένα πολύ
±stud@vm2:~$ # ισχυρό εργαλείο για αναζήτηση κειμένου σε αρχεία.