Kay
Kay

Reputation: 2067

Remove the lines starting with a character in shell, but preserve the negative values

I have dataset as:

file.txt
de
fds
fds
a
sa
 -1
 2
 -3
 1
}

I would like to delete all the lines starting with characters or special characters, but preserve the negative values. So my outfile is:

out.txt
-1
2
-3
1

This question is related to one of my earlier questions Remove the lines starting with a character in shell with which I can remove all lines starting with a character including negative sign.

I need to modify my code.

my code:

grep -E "^[0-9].*" file.txt

Upvotes: 0

Views: 55

Answers (2)

CWLiu
CWLiu

Reputation: 4043

$ grep -E '^[-| ][0-9]' file.txt > out
$ cat out
-1
 2
-3
 1

Upvotes: 1

sat
sat

Reputation: 14949

You can try like this:

grep '^ *[-+]\?[0-9]\+' file.txt > out.txt

(Or)

grep -E '^ *[-+]?[0-9]+' file.txt > out.txt

Upvotes: 1

Related Questions