1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 07:08:01 +00:00

Add Grab The First Line Of A File as a sed til

This commit is contained in:
jbranchaud
2021-04-12 14:08:21 -05:00
parent a57b36ed8d
commit 264abe23bf
2 changed files with 31 additions and 1 deletions

View File

@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
For a steady stream of TILs, [sign up for my newsletter](https://tinyletter.com/jbranchaud).
_1112 TILs and counting..._
_1113 TILs and counting..._
---
@@ -959,6 +959,7 @@ _1112 TILs and counting..._
- [Equivalence Classes Of Repetition MetaChars](sed/equivalence-classes-of-repetition-metachars.md)
- [Extract Value From Command Output With Sed](sed/extract-value-from-command-output-with-sed.md)
- [Grab All The Method Names Defined In A Ruby File](sed/grab-all-the-method-names-defined-in-a-ruby-file.md)
- [Grab The First Line Of A File](sed/grab-the-first-line-of-a-file.md)
- [OSX sed Does Regex A Bit Different](sed/osx-sed-does-regex-a-bit-different.md)
- [Output Only Lines Involved In A Substitution](sed/output-only-lines-involved-in-a-substitution.md)
- [Reference A Capture In The Regex](sed/reference-a-capture-in-the-regex.md)

View File

@@ -0,0 +1,29 @@
# Grab The First Line Of A File
You can grab the first line of a file with `sed` using either the `p` (print)
command or the `d` (delete) command.
First, the _print_ command can be told to print the line matching the line
number `1`. That combined with the `-n` flag, which suppresses all lines not
explicitly printed, will print just the first line in the file.
```bash
$ sed '1 p' README.md
# TIL
```
Second, the _delete_ command can be told to delete all lines that aren't the
first (`1`) line.
```bash
$ sed '1! d' README.md
# TIL
```
The `1` will match on the first line. By following it with `!`, that will
negate it so that it represents all lines except `1`.
See `man sed` for more details.
Note: there are more efficient ways, not using `sed`, to get the first line in
a file. This is an exercise in using and understanding some `sed` features.