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

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.

0

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- 
9
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

0

You can use cut:

cut -c N- file.txt > new_file.txt 

-c: characters

file.txt: input file

new_file.txt: output file

N-: Characters from N to end to be cut and output to the new file.

Can also have other args like: 'N' , 'N-M', '-M' meaning nth character, nth to mth character, first to mth character respectively.

This will perform the operation to each line of the input file.

0
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

3

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: enter image description here

1

I think awk would be the best tool for this as it can both filter and perform the necessary string manipulation functions on filtered lines:

tail -f logfile | awk '/ {print substr($0, 6)}' 

or

tail -f logfile | awk '/ && sub(/^.{5}/,"",$0)' 
x=hello echo ${x:1} 

returns ello

replace 1 with N as required

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like