Is there a way to delete all the characters up to the first occurrence of certain character and that character too.
123:abc
12:cba
1234:cccc
and the output would be:
abc
cba
cccc
Is there a way to delete all the characters up to the first occurrence of certain character and that character too.
123:abc
12:cba
1234:cccc
and the output would be:
abc
cba
cccc
You could use cut
:
$ cut -d":" -f2- myfile.txt
Using sed:
sed 's/^[^:]*://' file
abc
cba
cccc
Or using awk:
awk -F: '{print $2}' file
abc
cba
cccc
awk
echo "123:abc" | awk -F ":" '{print $2}'
-F
means to use :
as the separator to split the string.{print $2}
means to print the second substring.If the data is in a variable, you can use parameter expansion:
$ var=123:abc
$ echo ${var#*:}
abc
$
The # means to remove the shortest pattern of *:
(anything followed by a colon) from the front of the string, as you said in your requirement "delete all the characters up to the first occurrence of certain character + that character", not to get the second field where the delimiter is the colon.