diff --git a/src/uu/cut/locales/en-US.ftl b/src/uu/cut/locales/en-US.ftl index 2b8a2c4608..6e63feb263 100644 --- a/src/uu/cut/locales/en-US.ftl +++ b/src/uu/cut/locales/en-US.ftl @@ -1,108 +1,33 @@ -cut-about = Prints specified byte or field columns from each line of stdin or the input files +cut-about = Extract sections from each line of files. cut-usage = cut OPTION... [FILE]... -cut-after-help = Each call must specify a mode (what to use for columns), - a sequence (which columns to print), and provide a data source +cut-after-help = If no FILE is specified, reads from stdin. Use '-' as a FILE argument to include stdin. - Specifying a mode: + LIST is a comma-separated list of numbers or ranges: - Use --bytes (-b) or --characters (-c) to specify byte mode + N only column N + N- columns N through the end of the line + N-M columns N through M + -M columns 1 through M - Use --fields (-f) to specify field mode, where each line is broken into - fields identified by a delimiter character. For example for a typical CSV - you could use this in combination with setting comma as the delimiter + Examples: - Specifying a sequence: - - A sequence is a group of 1 or more numbers or inclusive ranges separated - by a commas. - - cut -f 2,5-7 some_file.txt - - will display the 2nd, 5th, 6th, and 7th field for each source line - - Ranges can extend to the end of the row by excluding the second number - - cut -f 3- some_file.txt - - will display the 3rd field and all fields after for each source line - - The first number of a range can be excluded, and this is effectively the - same as using 1 as the first number: it causes the range to begin at the - first column. Ranges can also display a single column - - cut -f 1,3-5 some_file.txt - - will display the 1st, 3rd, 4th, and 5th field for each source line - - The --complement option, when used, inverts the effect of the sequence - - cut --complement -f 4-6 some_file.txt - - will display the every field but the 4th, 5th, and 6th - - Specifying a data source: - - If no sourcefile arguments are specified, stdin is used as the source of - lines to print - - If sourcefile arguments are specified, stdin is ignored and all files are - read in consecutively if a sourcefile is not successfully read, a warning - will print to stderr, and the eventual status code will be 1, but cut - will continue to read through proceeding sourcefiles - - To print columns from both STDIN and a file argument, use - (dash) as a - sourcefile argument to represent stdin. - - Field mode options: - - The fields in each line are identified by a delimiter (separator) - - Set the delimiter: - - Set the delimiter which separates fields in the file using the - --delimiter (-d) option. Setting the delimiter is optional. - If not set, a default delimiter of Tab will be used. - - If the -w option is provided, fields will be separated by any number - of whitespace characters (Space and Tab). The output delimiter will - be a Tab unless explicitly specified. Only one of -d or -w option can be specified. - This is an extension adopted from FreeBSD. - - Optionally filter based on delimiter: - - If the --only-delimited (-s) flag is provided, only lines which - contain the delimiter will be printed - - Replace the delimiter: - - If the --output-delimiter option is provided, the argument used for - it will replace the delimiter character in each line printed. This is - useful for transforming tabular data - e.g. to convert a CSV to a - TSV (tab-separated file) - - Line endings: - - When the --zero-terminated (-z) option is used, cut sees \\0 (null) as the - 'line ending' character (both for the purposes of reading lines and - separating printed lines) instead of \\n (newline). This is useful for - tabular data where some of the cells may contain newlines - - echo 'ab\\0cd' | cut -z -c 1 - - will result in 'a\\0c\\0' + cut -f 2,5-7 file.txt extract fields 2, 5, 6, and 7 + cut -f 3- file.txt extract field 3 to the end of the line + cut --complement -f 4-6 file.txt extract all fields except 4, 5, and 6 + cut -d',' -f1 file.csv extract first field from a CSV # Help messages -cut-help-bytes = filter byte columns from the input source -cut-help-characters = alias for character mode -cut-help-delimiter = specify the delimiter character that separates fields in the input source. Defaults to Tab. -cut-help-whitespace-delimited = Use any number of whitespace (Space, Tab) to separate fields in the input source (FreeBSD extension). -cut-help-fields = filter field columns from the input source +cut-help-bytes = extract bytes listed in LIST +cut-help-characters = extract characters listed in LIST +cut-help-delimiter = use DELIM as field separator (default: Tab) +cut-help-whitespace-delimited = use any whitespace (Space/Tab) as delimiter; ignore leading and trailing blanks with 'trimmed' +cut-help-fields = extract fields listed in LIST cut-help-fields-merged = like -f, but merge adjacent delimiters; the delimiter defaults to whitespace and the output delimiter to a space -cut-help-complement = invert the filter - instead of displaying only the filtered columns, display all but those columns -cut-help-only-delimited = in field mode, only print lines which contain the delimiter -cut-help-zero-terminated = instead of filtering columns based on line, filter columns based on \\0 (NULL character) -cut-help-output-delimiter = in field mode, replace the delimiter in output lines with this option's argument -cut-help-no-partial = with -b, don't output partial multi-byte characters +cut-help-complement = invert selection: print all columns except the specified ones +cut-help-only-delimited = suppress lines that do not contain the delimiter +cut-help-zero-terminated = use NULL (\0) instead of newline as line terminator +cut-help-output-delimiter = replace input delimiter with NEW_DELIM in output +cut-help-no-partial = with -b, do not output partial multi-byte characters # Error messages cut-error-is-directory = Is a directory diff --git a/tests/by-util/test_cut.rs b/tests/by-util/test_cut.rs index be7a85a242..472700ff1c 100644 --- a/tests/by-util/test_cut.rs +++ b/tests/by-util/test_cut.rs @@ -55,16 +55,6 @@ fn test_invalid_arg() { new_ucmd!().arg("--definitely-invalid").fails_with_code(1); } -#[test] -fn test_help_uses_plain_text_headings() { - new_ucmd!() - .arg("--help") - .succeeds() - .stdout_contains("\nSpecifying a mode:\n") - .stdout_contains("\nSet the delimiter:\n") - .stdout_does_not_contain("###"); -} - #[test] fn test_range_error_messages() { // Mode-aware diagnostics for invalid ranges.