summaryrefslogtreecommitdiffstats
path: root/usr.bin/cut
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2002-05-24 09:56:18 +0000
committertjr <tjr@FreeBSD.org>2002-05-24 09:56:18 +0000
commit2292a0fbefedec1f30c7492f750fe741b83985eb (patch)
tree88b6a98540665b285c9792ced968e18a4cba821b /usr.bin/cut
parent1ccb024996b7c1dbe79c7e2759dae4dffa33eb67 (diff)
downloadFreeBSD-src-2292a0fbefedec1f30c7492f750fe741b83985eb.zip
FreeBSD-src-2292a0fbefedec1f30c7492f750fe741b83985eb.tar.gz
When a file name of "-" is given, read from standard input (SUSv3)
Diffstat (limited to 'usr.bin/cut')
-rw-r--r--usr.bin/cut/cut.19
-rw-r--r--usr.bin/cut/cut.c16
2 files changed, 17 insertions, 8 deletions
diff --git a/usr.bin/cut/cut.1 b/usr.bin/cut/cut.1
index 65beeee..55fd456 100644
--- a/usr.bin/cut/cut.1
+++ b/usr.bin/cut/cut.1
@@ -61,8 +61,13 @@ utility selects portions of each line (as specified by
.Ar list )
from each
.Ar file
-(or the standard input by default), and writes them to the
-standard output.
+and writes them to the standard output.
+If no
+.Ar file
+arguments are specified, or a file argument is a single dash
+.Pq Ql \&- ,
+.Nm
+reads from from the standard input.
The items specified by
.Ar list
can be in terms of column position or in terms of fields delimited
diff --git a/usr.bin/cut/cut.c b/usr.bin/cut/cut.c
index 12d0e83..1f67f2a 100644
--- a/usr.bin/cut/cut.c
+++ b/usr.bin/cut/cut.c
@@ -119,13 +119,17 @@ main(argc, argv)
rval = 0;
if (*argv)
for (; *argv; ++argv) {
- if (!(fp = fopen(*argv, "r"))) {
- warn("%s", *argv);
- rval = 1;
- continue;
+ if (strcmp(*argv, "-") == 0)
+ fcn(stdin, "stdin");
+ else {
+ if (!(fp = fopen(*argv, "r"))) {
+ warn("%s", *argv);
+ rval = 1;
+ continue;
+ }
+ fcn(fp, *argv);
+ (void)fclose(fp);
}
- fcn(fp, *argv);
- (void)fclose(fp);
}
else
fcn(stdin, "stdin");
OpenPOWER on IntegriCloud