I have this file
1.1some text
2.some text
1.line I need
How can I print only the first line in a file that start with "1." followed by any character except a number? I expect this:
1.line I need
my code is this
q=$(grep "^[0-9].[a-z]" "file")
echo $q
Thank you
CodePudding user response:
With your shown samples, please try following grep code. Simple explanation would be: Using grep's m1 option to print only first match and exit from program then in main program mentioning regex to match lines that start from 1. followed by a non-digit character, if match is found then print the line.
grep -m1 '^1\.[^0-9]' Input_file
CodePudding user response:
How can I print only the first line in a file that start with
1.followed by any character except a number?
Using sed, you can use:
sed '/^1\.[^0-9]/!d;q' file
1.line I need
Details:
-n: Suppresses regular output/^1\.[^0-9]/: Search for a line starting with1followed by a dot and a non-digit!d: Deletes all non-matching linesq: Quits further processing
Similar solution in awk would be:
awk '/^1\.[^0-9]/{print; exit}' file
