Development of Bash text utilities: cat, grep.
cat [OPTION] [FILE]...
| No. | Options | Description |
|---|---|---|
| 1 | -b (GNU: --number-nonblank) | numbers only non-empty lines |
| 2 | -e implies -v (GNU only: -E the same, but without implying -v) | but also display end-of-line characters as $ |
| 3 | -n (GNU: --number) | number all output lines |
| 4 | -s (GNU: --squeeze-blank) | squeeze multiple adjacent blank lines |
| 5 | -t implies -v (GNU: -T the same, but without implying -v) | but also display tabs as ^I |
grep [options] template [file_name]
| No. | Options | Description |
|---|---|---|
| 1 | -e | pattern |
| 2 | -i | Ignore uppercase vs. lowercase. |
| 3 | -v | Invert match. |
| 4 | -c | Output count of matching lines only. |
| 5 | -l | Output matching files only. |
| 6 | -n | Precede each matching line with a line number. |
| 7 | -h | Output matching lines without preceding them by file names. |
| 8 | -s | Suppress error messages about nonexistent or unreadable files. |
| 9 | -f file | Take regexes from a file. |
| 10 | -o | Output the matched parts of a matching line. |
- The programs developed in C language of C11 standard using gcc compiler.
- Do not used outdated and legacy language constructions and library functions. Pay attention to the legacy and obsolete marks in the official documentation on the language and the libraries used. Use the POSIX.1-2017 standard.
- When writing code it is necessary to followed the Google style
- The programs must be executable files with command line arguments
- The programs must be built with Makefile with appropriate targets: cat, grep
- Integration tests must cover all flag variants and input values, based on a comparison with the behavior of real Bash utilities
- The programs must be developed according to the principles of structured programming