What is a unix command for deleting the first N characters of a line?

Viewed 361032

For example, I might want to:

tail -f logfile | grep org.springframework | <command to remove first N characters>

I was thinking that tr might have the ability to do this but I'm not sure.

7 Answers

Use cut. Eg. to strip the first 4 characters of each line (i.e. start on the 5th char):

tail -f logfile | grep org.springframework | cut -c 5-
sed 's/^.\{5\}//' logfile 

and you replace 5 by the number you want...it should do the trick...

EDIT if for each line sed 's/^.\{5\}//g' logfile

Here is simple function, tested in bash. 1st param of function is string, 2nd param is number of characters to be stripped

function stringStripNCharsFromStart {
    echo ${1:$2:${#1}}
}

Usage:

$ stringStripNCharsFromStart "12abcdefgh-" 2
# 2abcdefgh-

Screenshot:

Screenshot of result from console

tail -f logfile | grep org.springframework | cut -c 900-

would remove the first 900 characters

cut uses 900- to show the 900th character to the end of the line

however when I pipe all of this through grep I don't get anything

x=hello

echo ${x:1}

returns ello

replace 1 with N as required

Related