File: grep.1

package info (click to toggle)
manpages-ja 0.5.0.0.20210215%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 28,568 kB
  • sloc: perl: 161; makefile: 58
file content (1254 lines) | stat: -rw-r--r-- 46,234 bytes parent folder | download | duplicates (2)
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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
.\" GNU grep man page
.if !\n(.g \{\
.	if !\w|\*(lq| \{\
.		ds lq ``
.		if \w'\(lq' .ds lq "\(lq
.	\}
.	if !\w|\*(rq| \{\
.		ds rq ''
.		if \w'\(rq' .ds rq "\(rq
.	\}
.\}
.
.ie \n[.g] .mso www.tmac
.el \{\
. de MTO
\\$2 \(laemail: \\$1 \(ra\\$3
..
. de URL
\\$2 \(laURL: \\$1 \(ra\\$3
..
.\}
.
..
.\"
.\" About Japanese translation
.\"   The original version was contributed to Linux JM project 
.\"     by FreeBSD jpman Project.
.\"     It contained these lines:
.\"       %FreeBSD: src/gnu/usr.bin/grep/grep.1,v 1.16.2.3 2001/11/27 08:25:45 ru Exp %
.\"       .Id %Id: grep.1,v 1.3 2000/06/09 21:58:50 horikawa Exp %
.\"   Updated and Modified (grep-2.6.3) Thu Nov 11 11:44:47 JST 2010
.\"     by Chonan Yoichi <cyoichi@maple.ocn.ne.jp>
.\"   Updated and Modified (grep-2.27) Thu Feb 25 2017
.\"     by Masakazu Takahashi <emasaka@gmail.com>
.\"
.TH GREP 1 \*(Dt "GNU grep 2.27" "User Commands"
.hy 0
.
.SH 名前
grep, egrep, fgrep \- パターンにマッチする行を表示する
.
.SH 書式
.B grep
.RI [ OPTIONS ]
.I PATTERN
.RI [ FILE .\|.\|.]
.br
.B grep
.RI [ OPTIONS ]
.RB [ \-e
.I PATTERN
|
.B \-f
.IR FILE ]
.RI [ FILE .\|.\|.]
.
.SH 説明
.B grep
.IR FILE
で名前を指定されたファイルを検索して、与えられた
.IR PATTERN
にマッチする部分を含む行を探します。
ファイルが指定されていない場合や、
ファイル名の代わりに 1 個のマイナス記号
.RB "\*(lq" \- "\*(rq"
が指定されている場合は、
.B grep
は標準入力から検索します。
デフォルトでは、
.B grep
はマッチした行を表示します。
.PP
さらに、兄弟プログラム
.B egrep
.B fgrep
は、それぞれ
.BR "grep\ \-E"
.BR "grep\ \-F"
と同じです。
これらの兄弟プログラムは非推奨ですが、後方互換性のために用意されています。
.
.SH オプション
.SS "プログラムについての一般情報"
.TP
.B \-\^\-help
使用法を出力して終了します。
.TP
.BR \-V ", " \-\^\-version
.B grep
のバージョン番号を出力して終了します。
.SS "正規表現の選択"
.TP
.BR \-E ", " \-\^\-extended\-regexp
.I PATTERN
を拡張正規表現 (ERE) として扱います (下記参照)。
.TP
.BR \-F ", " \-\^\-fixed\-strings
.I PATTERN
を改行で区切られた固定文字列 (正規表現のかわりに) のリストとして扱い、
その文字列のいずれかとマッチするかどうかを調べます。
.TP
.BR \-G ", " \-\^\-basic\-regexp
.I PATTERN
を基本正規表現 (BRE) として扱います (下記参照)。これがデフォルトです。
.TP
.BR \-P ", " \-\^\-perl\-regexp
パターンを Perl 互換の正規表現 (PCRE) として扱います。
きわめて実験的なものなので、
.B "grep \-P"
を使うと、その機能は実装されていませんという
警告が出るかもしれません。
.SS "マッチングの制御"
.TP
.BI \-e " PATTERN" "\fR,\fP \-\^\-regexp=" PATTERN
.I PATTERN
をパターンとして指定します。
このオプションを複数回使ったときや、
.B \-f
.RB ( \-\-file )
オプションと組み合わせたときは、与えられたすべてのパターンを検索します。
このオプションは、ハイフン  \*(lq\-\*(rq
で始まるパターンを保護するのにも使えます。
.TP
.BI \-f " FILE" "\fR,\fP \-\^\-file=" FILE
パターンを
.IR FILE
から 1 行 1 パターンとして読み込みます。
このオプションを複数回使ったときや、
.B \-e
.RB ( \-\-regexp )
オプションと組み合わせたときは、与えられたすべてのパターンを検索します。
空のファイルはパターンを含まないので、何にもマッチしません。
.TP
.BR \-i ", " \-\^\-ignore\-case
.I PATTERN
と入力ファイルの双方で、アルファベットの大文字と小文字を
区別しないようにします。
.TP
.BR \-v ", " \-\^\-invert\-match
マッチの意味を逆にして、マッチしない行を抜き出して表示します。
.TP
.BR \-w ", " \-\^\-word\-regexp
マッチする部分が完全な単語を形成するときにのみ、その行を選択します。
次の条件を検査します。パターンにマッチする部分文字列は、行頭にあるか、
さもなければ、単語構成文字以外の文字の直後になければならない。
また、その部分文字列は、行末にあるか、さもなければ、単語構成文字以外の文字の
直前になければならない (訳注: ここで「完全な単語を形成する」というのは、
それが空白、改行、引用符、句読点などで前後を区切られた文字列だ
ということです。たとえば、文字列「A word with you」中の word という
部分文字列は完全な単語ですが、文字列「two words」中の部分文字列 word は
完全な単語を形成しません)。
単語構成文字とは、アルファベット、数字、アンダスコアです
(訳注: 実は漢字や仮名も単語構成文字として扱われます)。
このオプションは、
.B \-x
が同時に指定されたときには無効になります。
.TP
.BR \-x ", " \-\^\-line\-regexp
パターンが行全体とぴったりマッチしたときにのみ、その行を選択します。
正規表現でいうと、これはパターンを括弧で囲み、前後に
.B ^
.BR $
を付けるようなものです。
.TP
.B \-y
.BR \-i
と同じ意味を持つ旧式のオプションです。
.SS "一般的な出力の制御"
.TP
.BR \-c ", " \-\^\-count
通常の出力はせず、各入力ファイルについてマッチした行数を表示します。
.BR \-v ", " \-\^\-invert-match
オプション (上記参照) と共に指定した場合は、
マッチしなかった行数を表示します。
.TP
.BR \-\^\-color [ =\fIWHEN\fP "], " \-\^\-colour [ =\fIWHEN\fP ]
マッチした (空文字列ではない) 文字列、マッチする行、前後の文脈行、
ファイル名、行番号、バイトオフセット、(フィールドや、前後の文脈行を含む
グループ同士の) 区切り記号をエスケープ・シーケンスで囲み、ターミナル上に
色付きで表示します。
どの色を使うかは、環境変数
.B GREP_COLORS
で定義します。非推奨の環境変数
.B GREP_COLOR
も、これまでどおり使用できますが、その設定は優先されません。
.I WHEN
.BR never ", " always ", " auto
のいづれかです。
.TP
.BR \-L ", " \-\^\-files\-without\-match
通常の出力はしません。その代わりに、
.BR grep
を普通に実行した際に、何の検索結果も表示しないような入力ファイルの名前を
列挙します (訳注: すなわち、\fB\-L\fR オプションを指定すると、
\fB\-v\fR オプションを同時に指定しない場合は、パターンにマッチする
文字列を含む行がまったく存在しないファイルの名前を列挙するということです)。
個々のファイルに対する走査は、最初のマッチで終了します。
.TP
.BR \-l ", " \-\^\-files\-with\-matches
通常の出力はしません。その代わりに、
.BR grep
を普通に実行した際に、何らかの検索結果を表示するような入力ファイルの名前を
列挙します (訳注: すなわち、\fB\-l\fR オプションを指定すると、
\fB\-v\fR オプションを同時に指定しない場合は、パターンにマッチする
文字列を含む行が存在するファイルの名前を列挙するということです)。
個々のファイルに対する走査は、最初のマッチで終了します。
.TP
.BI \-m " NUM" "\fR,\fP \-\^\-max\-count=" NUM
マッチした行数が
.I NUM
に達したら、ファイルの読み込みを中止します。
入力が通常ファイルから標準入力を介して行われている場合は、マッチした行を
.I NUM
行出力した時点で、
.B grep
は標準入力の読み出し位置を最後にマッチした行の直後に来るようにしてから、
終了します。続いて表示する文脈行がある場合でも、この動作は変わりません。
このことは、
.B grep
を呼び出すプロセスが、中止したところから検索を
再開することを可能にします。
.B grep
はマッチした行数が
.I NUM
に達してストップしたとき、それに続く文脈行があれば、それを出力します。
.B \-c
.B \-\^\-count
オプションを同時に使用した場合、
.B grep
.I NUM
よりも大きい数を出力しません。
.B \-v
.B \-\^\-invert\-match
を同時に使用した場合は、マッチしない行を
.I NUM
行出力したところで、
.B grep
はストップします。
.TP
.BR \-o ", " \-\^\-only\-matching
マッチする行のマッチした部分だけを (それが空文字列でなければ) 表示します。
マッチした各文字列は、それぞれ別の行に書き出します。
.TP
.BR \-q ", " \-\^\-quiet ", " \-\^\-silent
沈黙モードです。標準出力に何も書き出しません。
マッチするものが 1 つでも見つかると、エラーを検出していた場合でも、
終了ステータス 0 で即座に終了します。
.B \-s
.B \-\^\-no\-messages
オプションも参照してください。
.TP
.BR \-s ", " \-\^\-no\-messages
ファイルが存在しないことや読み込みめないことを示す
エラーメッセージを抑止します。
.SS "出力する行の前に付ける情報の制御"
.TP
.BR \-b ", " \-\^\-byte\-offset
出力する各行の前に、その入力ファイル内での 0 から始まる
バイト単位のオフセットを表示します。
.B \-o
.RB ( \-\^\-only\-matching )
も指定されているときは、マッチする部分そのもののオフセットを示します。
.TP
.BR \-H ", " \-\^\-with\-filename
各々のマッチに対してそのファイル名を表示します。
検索するファイルが 2 個以上の場合は、これがデフォルトの動作です。
.TP
.BR \-h ", " \-\^\-no\-filename
出力する行の前にファイル名を付けないようにします。
検索するファイルが 1 つしかない (あるいは、標準入力だけだった) 場合は、
これがデフォルトの動作です。
.TP
.BI \-\^\-label= LABEL
実際には標準入力から来た入力を
.IR LABEL
というファイルから来たもののように見せかけます。
これは
.BR zgrep
のようなツールを自分で作成する際にとりわけ便利です。たとえば、
.BR "gzip -cd foo.gz | grep --label=foo -H something"
といった具合です。
.B \-H
オプションも参照してください。
.TP
.BR \-n ", " \-\^\-line\-number
各出力行の前に、その入力ファイル内での 1 から始まる行番号を表示します。
.TP
.BR \-T ", " \-\^\-initial\-tab
行の実際の内容をなす最初の文字が、必ずタブ・ストップの位置に
来るようにします。その結果、タブがきちんと揃って見えるようになります。
このオプションは
.BR \-H , \-n , \-b
といった、実際の内容の前に情報を付加するオプションを使うときに
役に立ちます。
また、このオプションは、
1 つのファイルから抜き出した行の先頭ができるだけ揃うように、
行番号やバイトオフセットがある場合は、そのフィールド幅を
必要最小のサイズにして表示します。
.TP
.BR \-u ", " \-\^\-unix\-byte\-offsets
Unix 形式のバイトオフセットを報告します。
このスイッチを使うと、
.B grep
は、検索対象のファイルが Unix 形式のテキストファイルであるかのように、
バイトオフセットを報告します。すなわち、CR 文字を切り捨てるのです。
そのため、表示される結果は、Unix マシンで
.B grep
を実行したときと同じものになります。
このオプションは、
.B \-b
オプションを同時に使用しないかぎり、効果がありません。
また、このオプションは、\s-1MS-DOS\s0 と \s-1MS\s0-Windows 以外の
プラットホームでは、何の効果もありません。
.TP
.BR \-Z ", " \-\^\-null
ファイル名に続いて通常出力される文字の代わりに、
値が 0 の 1 バイト (\s-1ASCII\s0
.B NUL
文字) を出力します。
たとえば、
.B "grep \-lZ"
は、いつもの改行 (newline) ではなく、値が 0 の 1 バイトを各ファイル名の後ろに
出力するのです。
このオプションは、改行のような変わった文字を含むファイル名があるときでも、
出力の曖昧さをなくしてくれます。
このオプションを
.BR "find \-print0" ,
.BR "perl \-0" ,
.BR "sort \-z" ,
.B "xargs \-0"
などのコマンドと組み合わせて使うと、行儀の悪いファイル名も
処理することができます。
ファイル名が改行文字を含んでいても処理できるのです。
.SS "前後の文脈行の制御"
.TP
.BI \-A " NUM" "\fR,\fP \-\^\-after\-context=" NUM
.I NUM
で指定した行数だけ、パターンにマッチした行の後に続く文脈も表示します。
マッチした行を含むグループ同士の間には、グループを区切る印
.RB ( \-\^\- )
からなる行を置きます。
.B \-o
.B \-\^\-only\-matching
と同時に使うと、このオプションは効果がなく、警告メッセージを出します。
.TP
.BI \-B " NUM" "\fR,\fP \-\^\-before\-context=" NUM
.I NUM
で指定した行数だけ、パターンにマッチした行に先行する文脈も表示します。
マッチした行を含むグループ同士の間には、グループを区切る印
.RB ( \-\^\- )
からなる行を置きます。
.B \-o
.B \-\^\-only\-matching
と同時に使うと、このオプションは効果がなく、警告メッセージを出します。
.TP
.BI \-C " NUM" "\fR,\fP \-" NUM "\fR,\fP \-\^\-context=" NUM
.I NUM
で指定した行数だけ、パターンにマッチした行の前後の文脈も表示します。
マッチした行を含むグループ同士の間には、グループを区切る印
.RB ( \-\^\- )
からなる行を置きます。
.B \-o
.B \-\^\-only\-matching
と同時に使うと、このオプションは効果がなく、警告メッセージを出します。
.SS "ファイルやディレクトリの選択"
.TP
.BR \-a ", " \-\^\-text
バイナリファイルをテキストファイルであるかのように処理します。
これは
.B \-\^\-binary-files=text
オプションと等価です。
.TP
.BI \-\^\-binary\-files= TYPE
ファイルのデータやメタデータが、
ファイルにバイナリデータが含まれていることを示す場合に、
ファイルのタイプを
.IR TYPE
だと見なします。
テキストではないバイトが見つかれば、バイナリデータです。
テキストではないバイトが、
現在使用しているロケールに不適切にエンコードして出力されたバイトや、
.B \-z
オプションが指定されていないときの入力中のヌルバイトだということもあります。
.IP
デフォルトでは
.I TYPE
.BR binary
であり、
.B grep
はファイルがバイナリだとわかると、
その先の出力を抑制します。そのかわりにバイナリファイルにマッチしたという
1 行のメッセージを表示します。マッチする部分がない場合には何も表示しません。
.IP
.I TYPE
.BR without-match
の場合、
.B grep
はファイルがバイナリだとわかると、残りはマッチしないものと仮定します。
これは
.B \-I
オプションと等価です。
.IP
.I TYPE
.BR text
の場合、
.B grep
はバイナリファイルをテキストであるかのように扱います。
これは
.B \-a
オプションと等価です。
.IP
.I type
.BR binary
の場合、
.B grep
.B \-z
がなくてもテキスト以外の文字を行の区切りとして扱う場合があります。
これは、
.B binary
を選ぶか
.B text
を選ぶかによって、
パターンがファイルにマッチするかどうかに影響があることを意味します。
たとえば、
.I type
.B binary
の場合は
.B q$
というパターンが
.B q
の直後に NULL 文字が続く箇所にマッチする可能性があるのに対し、
.I type
.BR text
の場合にはマッチしません。
逆に、
.I type
.B binary
の場合、
.B .\&
(period) というパターンは NULL 文字にはマッチしないかもしれません。
.IP
.I 警告:
.B \-a
オプションはバイナリのゴミを出力するかもしれません。
出力先が端末であり、しかも
端末ドライバがゴミの一部をコマンドだと解釈する場合には、
このゴミが厄介な副作用を起こす可能性があります。
一方、テキストのエンコーディングが不明なファイルを読み込むとき、
マッチした結果をそのまま表示するのが安全でなくても、
より多くのマッチを探すために、
.B \-a
を指定するか、環境変数で
.B LC_ALL='C'
を指定するのが役に立つ場合があります。
.TP
.BI \-D " ACTION" "\fR,\fP \-\^\-devices=" ACTION
入力ファイルがデバイス、FIFO、ソケットのいづれかである場合に、
.I ACTION
を使ってその処理を行います。
デフォルトの
.I ACTION
.BR read
です。すなわち、デバイスなどを、それが普通のファイルであるかのように、
読み込みます。
.I ACTION
.BR skip
ならば、デバイスなどを黙ってスキップします。
.TP
.BI \-d " ACTION" "\fR,\fP \-\^\-directories=" ACTION
入力ファイルがディレクトリの場合に、
.I ACTION
を使ってその処理を行います。デフォルトの
.I ACTION
.BR read
です。すなわち、ディレクトリを、それが普通のファイルであるかのように、
読み込みます。
.I ACTION
.BR skip
ならば、ディレクトリを黙ってスキップします。
.I ACTION
.BR recurse
なら、
.B
grep
は各ディレクトリの下にあるすべてのファイルを再帰的に読み込みます。
ただし、シンボリックリンクはコマンドラインで指定されたときにのみたどります。
これは
.B \-r
オプションと等価です。
.TP
.BI \-\^\-exclude= GLOB
コマンドラインで指定されているファイルについては、
その名前の尾部が、
ワイルドカードによるマッチングでパターン
.IR GLOB
にマッチするファイルをスキップします。
ここで言う「名前の尾部」とは、
ファイル名の全体か、
.B /
の直後に始まり
.B /
以外の文字で終るファイル名の最後の部分のことです。
また、ディレクトリを再帰検索しているときに出会うファイルについては、
ベースネームが
.IR GLOB
にマッチするファイルをスキップします。
ベースネームとは最後の
.BR /
より後の部分です。
パターンには、
.BR * ,
.BR ? ,
.BR [ ... ]
がワイルドカードとして使えます。
.B \e
を文字の前に置けば、
ワイルドカード文字やバックスラッシュ文字を本来の意味で使用できます。
.TP
.BI \-\^\-exclude-from= FILE
ファイル
.I FILE
を読み込み、そこに書かれているファイル名 (ワイルドカード可) のどれかに
ベースネームがマッチするファイルをスキップします
.RB ( \-\^\-exclude
の項で説明したワイルドカードのマッチングを使用します)。
.TP
.BI \-\^\-exclude-dir= GLOB
コマンドラインで指定されているディレクトリのうち、
名前の尾部がパターン
.IR GLOB
にマッチするディレクトリをスキップします。
また、ディレクトリを再帰検索しているときに出会うサブディレクトリについては、
ベースネームが
.IR GLOB
にマッチするサブディレクトリをスキップします。
.IR GLOB
末尾の余分なスラッシュは無視されます。
.TP
.BR \-I
バイナリファイルをマッチするデータを含んでいないものとして
処理します。これは
.B \-\^\-binary\-files=without-match
オプションと等価です。
.TP
.BI \-\^\-include= GLOB
ベースネームが
.I GLOB
にマッチするファイルのみを検索します
.RB ( \-\^\-exclude
の項で説明したワイルドカードのマッチングを使用します)。
.TP
.BR \-r ", " \-\^\-recursive
各ディレクトリの下にあるすべてのファイルを再帰的に読み込みます。
ただし、シンボリックリンクはコマンドラインで指定されたときにのみたどります。
検索対象のファイルが指定されなかった場合には
grep は現在のディレクトリを探すことに注意してください。
これは
.B "\-d recurse"
オプションと等価です。
.TP
.BR \-R ", " \-\^\-dereference\-recursive
各ディレクトリの下にあるすべてのファイルを再帰的に読み込みます。
.BR \-r
と異なり、すべてのシンボリックリンクを追跡します。
.SS "その他のオプション"
.TP
.BR \-\^\-line\-buffered
行ごとに出力を行います。
実行速度が落ちるかもしれません。
.TP
.BR \-U ", " \-\^\-binary
ファイルをバイナリとして扱います。
MS-DOS や MS-Windows の環境下で、
.BR grep
はデフォルトでは、
ファイルがテキストかバイナリかを
.B \-\^\-binary\-files
オプションで記述された方法で推測します。
.BR grep
はファイルをテキストファイルと判断した場合、オリジナルのファイル内容から
.RB ( ^
.B $
を使った正規表現が正しく動作するように)
CR 文字を取り除きます。
.B \-U
を指定すると、この推測を抑制し、すべてのファイルを読み取って、
そのまま手を加えずにマッチ処理へ渡すのです。もしファイルが
各行の末尾に CR/LF の組み合わせを持つテキストファイルなら、
このオプションのせいで正規表現がうまく働かないことがあるかもしれません。
このオプションは MS-DOS や MS-Windows 以外のプラットフォームでは
効果がありません。
.TP
.BR \-z ", " \-\^\-null\-data
入力と出力のデータを、
改行のかわりに、
値が 0 のバイト (ASCII NULL 文字) で区切られた一連の行として扱います。
.B \-Z
.B \-\^\-null
と同様、このオプションは
.B sort -z
などのコマンドと組み合わせて、
行儀の悪いファイル名の処理に使用することができます。
.SH "正規表現"
正規表現とは、一群の文字列を一まとめにして表現するパターンのことです。
正規表現の構成方法は、数式によく似ています。すなわち、さまざまな演算子を
使い、小さな表現を組み合わせて構成するのです。
.PP
.B grep
は、「基本」正規表現 (BRE)、「拡張」正規表現 (ERE)、「Perl の」正規表現
(PCRE) という 3 種類の正規表現文法を扱うことができます。
.RB "\s-1GNU\s0\ " grep
では、「基本」と「拡張」の文法の間で、利用できる機能に違いはありません。
他の実装では、基本正規表現は拡張正規表現ほど強力ではないものです。
ここでは、拡張正規表現について説明し、
基本正規表現との相違については、後で簡単にまとめることにします。
なお、Perl 互換の正規表現にはより多くの機能があり、
pcresyntax(3) や pcrepattern(3) で詳細に解説されていますが、
PCRE が用意されているシステムでしか利用できません。
.PP
正規表現を構成する基本単位は、1 文字にマッチする正規表現です。
アルファベットや数字を含むほとんどの文字が、自分自身にマッチする正規表現です。
また、特殊な意味を持つメタ文字も、その文字の前にバックスラッシュ
を付けると、その本来の文字にマッチするようになります。
.PP
ピリオド
.B .\&
は、任意の 1 文字にマッチします。
.SS "文字クラスと角括弧式 (ブラケット式)"
.I "角括弧式"
とは、
.B [
.BR ]
で囲まれた文字のリストのことです。
.I "角括弧式"
は、リスト中の任意の 1 文字にマッチします。
また、リストの最初の文字がキャレット
.B ^
の場合は、リスト中の文字以外の任意の 1 文字にマッチします。
たとえば、正規表現
.B [0123456789]
は任意の数字 1 個にマッチするわけです。
.PP
角括弧式の内側に
.I "範囲式"
を置くことができますが、これはハイフンで区切られた 2 つの文字から
なっています。範囲式は、現在使用中のロケールにおける照合順序と
文字集合を使ったときに、その 2 文字の間に並ぶ、その 2 文字を含む
任意の 1 文字にマッチします。
たとえば、デフォルトの C ロケールでは、
.B [a\-d]
.BR [abcd]
と等価です。
多くのロケールでは文字を辞書式の順序で並べていますが、そうしたロケールで
.B [a\-d]
.BR [abcd]
と等価でないこともよくあります。
たとえば、
.BR [aBbCcDd]
と等価かもしれないのです。
角括弧式を伝統的な意味に解釈させたいなら、
環境変数
.B LC_ALL
の値を
.BR C
に設定して、C ロケールを使用するとよいでしょう。
.PP
最後に、角括弧式内で使えるように、特定の名前を持つ文字クラスが
あらかじめ定義されています。
名前が内容を示しており、それは次のようなものです。
.BR [:alnum:] ,
.BR [:alpha:] ,
.BR [:cntrl:] ,
.BR [:digit:] ,
.BR [:graph:] ,
.BR [:lower:] ,
.BR [:print:] ,
.BR [:punct:] ,
.BR [:space:] ,
.BR [:upper:] ,
.BR [:xdigit:]。
たとえば、
.B [[:alnum:]]
現在のロケールの文字クラスで数字と文字を意味します。
C ロケールや \s-1ASCII\s0 文字集合のエンコーディングの場合、
これは
.BR [0\-9A\-Za\-z]
と同じです。
(こうしたクラス名に使用されている角括弧は、シンボル名の一部なので、
角括弧式の前後に付く角括弧とは別に指定する必要があることに
注意してください。)
角括弧式の内側では、ほとんどのメタ文字がその特別な意味を
持たなくなります。
.B ]
という記号そのものを角括弧式に含めるには、
それをリストの先頭に置いてください。
同様に、
.B ^
という記号そのものを含めるには、
それを先頭以外のどこかに置けばよいでしょう。
最後に、
.B \-
そのものを含めるには、
それをリストの最後に置きます。
.SS "行頭と行末 (アンカリング)"
キャレット
.B ^
ドル記号
.B $
は、それぞれ行頭と行末の空文字列にマッチするメタ文字です。
.SS "バックスラッシュ付きの特別な表現"
シンボル
.B \e<
とシンボル
.B \e>
は、それぞれ単語の先頭と末尾の空文字列にマッチするメタ文字です。
シンボル
.B \eb
は単語の端の空文字列にマッチします。
シンボル
.B \eB
は単語の端
.I 以外
の空文字列にマッチします。
シンボル
.B \ew
.B [_[:alnum:]]
と同じ意味で、
シンボル
.B \eW
.BR [^_[:alnum:]] .
と同じ意味です。
.SS "繰り返し"
正規表現の後には、繰り返し演算子のどれかが続くことがあります。
.PD 0
.TP
.B ?
直前の項目があってもなくてもよく、マッチするとしても 1 回だけということ。
.TP
.B *
直前の項目が 0 回以上マッチするということ。
.TP
.B +
直前の項目が 1 回以上マッチするということ。
.TP
.BI { n }
直前の項目がちょうど
.I n
回マッチするということ。
.TP
.BI { n ,}
直前の項目が
.I n
回以上マッチするということ。
.TP
.BI {, m }
直前の項目が
.I m
回以下マッチするということ。
これは \s-1GNU\s0 拡張です。
.TP
.BI { n , m }
直前の項目が
.I n
回以上
.I m
回以下マッチするということ。
.PD
.SS "結合"
2 つの正規表現は結合することができます。
結果としてできあがる正規表現は、
結合対象となる部分表現にそれぞれマッチする
2 つの部分文字列を結合して作られる、どんな文字列にもマッチします。
.SS "選択"
2 つの正規表現は中置き型演算子の
.BR |
で繋ぐことができます。
結果としてできあがる正規表現は、
どちらかの部分表現にマッチするどんな文字列にもマッチします。
.SS "優先順位"
繰り返しは結合に優先します。また結合は選択に優先します。
表現の 1 つのまとまりを括弧でくくると、その内側の式をこうした優先規則より
さらに優先させることができます。
括弧でくくった部分は、1 つの部分表現になるのです。
.SS "後方参照と部分表現"
.I n
が 1 個の数字であるような
後方参照
.BI \e n
は、正規表現中の括弧で囲まれた
.IR n
番目の部分表現が前もってマッチした文字列とマッチします。
.SS "基本正規表現と拡張正規表現"
基本正規表現では、メタ文字
.BR ? ,
.BR + ,
.BR { ,
.BR | ,
.BR ( ,
.BR )
は、その特殊な意味を失います。バックスラッシュを付けた
.BR \e? ,
.BR \e+ ,
.BR \e{ ,
.BR \e| ,
.BR \e( ,
.BR \e)
を代わりに使用してください。
.
.SH "環境変数"
.B grep
の動作は、
以下に挙げる環境変数の影響を受けます。
.PP
.BI LC_ foo
カテゴリのロケールは、
.BR LC_ALL ,
.BR LC_\fIfoo\fP ,
.BR LANG
という 3 つの環境変数をこの順番で調べることで決まります。
この 3 つの環境変数のうち、設定されている最初のものが、
.BI LC_ foo
のロケールを決めるのです。
たとえば、
.B LC_ALL
が設定されていず、
.B LC_MESSAGES
.BR pt_BR
に設定されているとしましょう。
そのときは、ブラジルのポルトガル語というロケールが
.B LC_MESSAGES
カテゴリに使用されるわけです。
こうした環境変数がまったく設定されていなかったり、ロケールの
カタログがインストールされていなかったり、
.B grep
が各国語サポート (\s-1NLS\s0) を有効にしてコンパイルされていなかったり
した場合は、C ロケールが使用されます。
シェルの
.B "locale \-a"
コマンドによって現在利用できるロケールが一覧できます。
.TP
.B GREP_OPTIONS
この変数ではデフォルトのオプションを指定します。そうしたオプションは
コマンドラインで明示的に指定するオプションの前に置かれます。
これが移植性の高いスクリプトを書くときに問題となるため、
この機能は
.BR grep
の将来のリリースで削除されることになっており、
使用すると
.B grep
が警告を表示します。
かわりにエイリアスやスクリプトを使ってください。
.TP
.B GREP_COLOR
この変数は、パターンにマッチした (空文字列ではない) テキストを強調するために
使用する色彩を指定します。
.BR GREP_COLORS
変数を使用する方が望ましく、この変数は非推奨なのですが、今でも
使えないことはありません。
.B GREP_COLORS
変数の
.BR mt ,
.BR ms ,
.B mc
機能を使用している場合は、この変数による指定より、そちらのほうが
優先されます。
この変数によって指定できるのは、マッチする空文字列ではないテキストを
強調するために、マッチする行ならどこでも使用する色彩だけなのです
(マッチする行は、コマンドラインオプション
.B -v
を指定しなかったときは、選択される行になり、
.B -v
を指定したときは、前後の文脈行になります)。
この変数のデフォルトの値は
.BR 01;31
ですが、それはターミナルのデフォルトの背景色に赤い前景色の太字で
テキストを表示するということです。
.TP
.B GREP_COLORS
この変数は、出力のさまざまな部分を強調するために使用する、
色彩などの属性を指定します。
この変数の値はコロンで区切った機能のリストであり、
デフォルトでは、
.B ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36
になっていて、
.B rv
.B ne
という真偽値を取る機能は設定してありません (すなわち、false になっています)。
使用できる機能は、以下のとおりです。
.RS
.TP
.B sl=
選択される行全体に適用される SGR パラメータ
(選択される行とは、コマンドラインで
.B \-v
オプションを指定しなかったときは、マッチする行、
.B \-v
オプションを指定したときは、マッチしない行のことです)。
ただし、値に真偽値を取る
.B rv
機能とコマンドライン・オプションの
.B \-v
の両方を指定したときは、前後の文脈行扱いになるマッチする行に
適用されます。
デフォルトは空です (すなわち、端末のデフォルトの背景色と
前景色の組み合わせ)。
.TP
.B cx=
前後の文脈行全体に適用される SGR パラメータ
(前後の文脈行とは、コマンドラインで
.B \-v
オプションを指定しなかったときは、マッチしない行、
.B \-v
オプションを指定したときは、マッチする行のことです)。
ただし、値に真偽値を取る
.B rv
機能とコマンドライン・オプションの
.B \-v
の両方を指定したときは、選択されるマッチしない行に
適用されます。
デフォルトは空です (すなわち、端末のデフォルトの背景色と
前景色の組み合わせ)。
.TP
.B rv
コマンドラインで
.B \-v
が指定されているときに、
.B sl=
.B cx=
機能の意味を逆にする (入れ替える) 真偽値。
デフォルトは空です (すなわち、この機能は指定されていません)。
.TP
.B mt=01;31
マッチする行ならどこでも、空文字列ではないマッチするテキストに適用される
SGR パラメータ
(マッチする行は、コマンドラインで
.B \-v
オプションを指定しなかったときは、選択される行になり、
.B \-v
を指定したときは、前後の文脈行になります)。
この機能を設定するのは、
.B ms=
.B mc=
を同時に同じ値に設定するのと同じことです。
デフォルトは、カレント行の背景色に赤い前景色の太字になっています。
.TP
.B ms=01;31
選択される行中の空文字列ではないマッチするテキストに適用される SGR パラメータ
(この機能が使用されるのは、コマンドラインで
.B \-v
オプションを指定しないときだけです)。
.B sl=
機能
.RB ( rv
が設定されているときは、
.B cx=
機能) の効果は、この機能を使用しても、相変わらず有効です。
デフォルトは、カレント行の背景色に赤い前景色の太字になっています。
.TP
.B mc=01;31
前後の文脈行中の空文字列ではないマッチするテキストに適用される SGR パラメータ
(この機能が使用されるのは、コマンドラインで
.B \-v
オプションが指定されているときだけです)。
.B cx=
機能
.RB ( rv
が設定されているときは、
.B sl=
機能) の効果は、この機能を使用しても、相変わらず有効です。
デフォルトは、カレント行の背景色に赤い前景色の太字になっています。
.TP
.B fn=35
表示される行の前にファイル名が付くとき、それに適用される SGR パラメータ。
デフォルトは、端末のデフォルトの背景色にマゼンタの前景色の文字です。
.TP
.B ln=32
表示される行の前に行番号が付くとき、それに適用される SGR パラメータ。
デフォルトは、端末のデフォルトの背景色に緑の前景色の文字です。
.TP
.B bn=32
表示される行の前にバイトオフセットが付くとき、それに適用される SGR パラメータ。
デフォルトは、端末のデフォルトの背景色に緑の前景色の文字です。
.TP
.B se=36
区切り記号に適用される SGR パラメータ。
区切り記号としては、選択される行のフィールド間には
.RB ' : '
を置き、
前後の文脈行のフィールド間には
.RB ' \- '
を置きます。
前後の文脈行の表示が指定されているときは、隣接行グループの間に
.RB ' \-\^\- '
を挿入します。
デフォルトは、端末のデフォルトの背景色にシアンの前景色の記号です。
.TP
.B ne
真偽値です。通常、色付けされた項目が終わるたびに、
エスケープ・シーケンス Erase in Line (EL) to Right
.RB ( \\\\\\33[K )
を使用して、行末まで消去しますが、
.B ne
を設定すると、それをやらなくなります。
これは、端末が EL をサポートしていない場合に必要です。
そのほか、
真偽値を取る terminfo の機能
.B back_color_erase
.RB ( bce )
を使用していない端末で、採用した強調色が背景に作用しない場合や、
EL が遅すぎたり、画面にひどいチラつきを引き起こしたりする場合にも、
これの設定が役に立ちます。
デフォルトは false です (すなわち、この機能は設定されていません)。
.PP
真偽値を取る機能には
.BR = ..
の部分がないことに注意してください。そうした機能はデフォルトでは
設定されていず (すなわち、false)、設定されたとき true になります。
.PP
使用しているテキスト端末の文書にある Select Graphic Rendition (SGR) の
セクションを見て、使用できる値や、それが文字属性として使われたときの意味を
調べてください。
SGR パラメータの値は十進法の整数であり、セミコロンで結合することができます。
.B grep
はそうしたセミコロンで結合された数字から完全な SGR シーケンス
.RB ( \\\\\\33[ ... m )
を構成します。
結合される値でよく使われるものを挙げると、
.B 1
は太字、
.B 4
は下線、
.B 5
は点滅、
.B 7
は反転です。
.B 39
はデフォルトの前景色、
.B 30
から
.B 37
は前景色、
.B 90
から
.B 97
は 16 色モードの前景色、
.B 38;5;0
から
.B 38;5;255
は 88 色と 256 色モードの前景色に使われます。また、
.B 49
はデフォルトの背景色であり、
.B 40
から
.B 47
は背景色、
.B 100
から
.B 107
は 16 色モードの背景色、
.B 48;5;0
から
.B 48;5;255
は 88 色と 256 色モードの背景色です。
.RE
.TP
\fBLC_ALL\fP, \fBLC_COLLATE\fP, \fBLANG\fP
こうした変数は
.B LC_COLLATE
カテゴリのロケールを指定します。
.B LC_COLLATE
.BR [a\-z]
のような範囲式を解釈するときの照合順序を決めるものです。
.TP
\fBLC_ALL\fP, \fBLC_CTYPE\fP, \fBLANG\fP
こうした変数は
.B LC_CTYPE
カテゴリのロケールを指定します。
.B LC_CTYPE
は文字のタイプ、たとえば、空白 (whitespace) に当たるのは
どの文字とどの文字か、といったことを決めるものです。
このカテゴリーは、文字のエンコーディングも決定します。
つまり、テキストのエンコーディングが UTF-8 か、ASCII か、
それ以外のエンコーディングかということです。
ロケールが C か POSIX の場合は、
すべての文字が 1 バイトとしてエンコードされ、
すべてのバイトが有効な文字となります。
.TP
\fBLC_ALL\fP, \fBLC_MESSAGES\fP, \fBLANG\fP
こうした変数は
.B LC_MESSAGES
カテゴリのロケールを指定します。
.B LC_MESSAGES
.B grep
がメッセージに使う言語を決めるものです。
デフォルトの C ロケールでは、アメリカ英語のメッセージが使用されます。
.TP
.B POSIXLY_CORRECT
これが設定されていると、
.B grep
は \s-1POSIX\s0 が要求するとおりの動作をします。
設定されていない場合の動作は、ほかの \s-1GNU\s0 のプログラムに
より近いものです。
\s-1POSIX\s0 の規定では、ファイル名の後にオプションが現れた場合、
それをファイル名として扱わなければならないことになっています。
これに対して、
.B grep
のデフォルトでは、そうしたオプションを引き数リストの前の方に移動して、
オプションとして扱います。
また、\s-1POSIX\s0 の規定では、理解できないオプションは
\*(lqillegal\*(rq (違法) と判断するようになっていますが、
そうしたオプションも法律に違反しているわけではないので、
.B grep
のデフォルトでは、\*(lqinvalid\*(rq (無効) という判断を下します。
.\" さらに、
.\" .B POSIXLY_CORRECT
.\" は、下記の \fB_\fP\fIN\fP\fB_GNU_nonoption_argv_flags_\fP を無効にします。
.\" (訳注: 次項を表示しないことに合わせて、「さらに」以下の文も
.\" コメントにします) 
.\" .TP
.\" \fB_\fP\fIN\fP\fB_GNU_nonoption_argv_flags_\fP
.\" (ここで
.\" .I N
.\" は、
.\" .BR grep
.\" のプロセス ID 番号です) もし、この環境変数の値の
.\" .IR i
.\" 番目の文字が
.\" .BR 1
.\" だったら、
.\" .B grep
.\" の
.\" .IR i
.\" 番目の引き数がオプションのように見えても、
.\" それをオプションと見なしてはいけない、ということです。
.\" シェルはコマンドを実行するたびに、そのコマンドの環境にこの変数を
.\" 挿入して、どの引き数がファイル名をワイルドカード展開した結果であり、
.\" それ故オプションとして扱ってはいけないかを指定することができます。
.\" この動作は \s-1GNU\s0 C ライブラリを使用しているときにのみ、それも、
.\" .B POSIXLY_CORRECT
.\" が設定されていないときにのみ、利用することができます。
.\" (訳注: この環境変数は、bash 2.0 で採用されたが、問題を起こすために
.\" bash 2.01 で削除されたとのことです。それ故、ユーザからは man
.\" コマンドで見えないようにしておきます。getopt(3) を参照してください)
.
.SH "終了ステータス"
通常では、選択される行が見つかったときの終了ステータスは 0 であり、
見つからなかったときは 1 であり、エラーが起きた場合は 2 です。
ただし、
.B \-q ,
.B \-\^\-quiet ,
.B \-\^\-silent
といったオプションが使われていて、選択される行が見つかったときは、
エラーが起きたときでも終了ステータスは 0 です。
.
.SH "著作権"
Copyright 1998-2000, 2002, 2005-2016 Free Software Foundation, Inc.
.PP
This is free software;
see the source for copying conditions.
There is NO warranty;
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
.
.SH "バグ"
.SS "バグの報告"
バグ報告は
.MTO bug-grep@gnu.org "バグ報告アドレス"
宛に E メールで送ってください。
.URL http://lists.gnu.org/mailman/listinfo/bug-grep "メールアーカイブ"
.URL http://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep "バグトラッカー"
も用意されています。
.SS "既知のバク"
.BI { n , m }
を使って何度も繰り返しを行うと、
.B grep
は大量のメモリを消費するかもしれません。
また、ほかの曖昧な正規表現にも、指数関数的な時間と
メモリ空間を要するものがあり、
.B grep
がメモリ不足を起こすことがあります。
.PP
後方参照は非常に遅く、とんでもなく時間がかかることがあります。
.PP
.SH "関連項目"
.SS "標準のマニュアルページ"
awk(1), cmp(1), diff(1), find(1), gzip(1),
perl(1), sed(1), sort(1), xargs(1), zgrep(1),
read(2),
pcre(3), pcresyntax(3), pcrepattern(3),
terminfo(5),
glob(7), regex(7).
.SS "\s-1POSIX\s0 プログラマーズ・マニュアルページ"
grep(1p).
.SS "完全版の文書"
.URL http://www.gnu.org/software/grep/manual/ "完全版のマニュアル"
が用意されています。
.B info
.B grep
プログラムが御使用のサイトにきちんとインストールされているならば、
.IP
.B info grep
.PP
とコマンドを打ち込むことで、完備したマニュアルが読めるはずです。
.SH "注記"
このマニュアルは断続的にメンテナンスされるため、
完全版の文書のほうが最新であることがよくあります。
.SH "訳者謝辞"
この翻訳は、FreeBSD jpman Project <http://www.jp.freebsd.org/man-jp/>
から Linux JM project に寄贈していただいたマニュアルを元にし、
GNU grep の新しいマニュアルに合わせて、増補・改訂しています。
この場を借りて、FreeBSD jpman Project の翻訳者の方々にお礼を申し上げます。
.\" Work around problems with some troff -man implementations.
.br