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- 9sed '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
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.
0tail -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
3Here 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}} }
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
