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

前端 未结 6 1392
悲&欢浪女
悲&欢浪女 2020-11-30 17:27

For example, I might want to:

tail -f logfile | grep org.springframework | 

I was thinking that

相关标签:
6条回答
  • 2020-11-30 17:39

    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 '/org.springframework/ {print substr($0, 6)}'
    

    or

    tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'
    
    0 讨论(0)
  • 2020-11-30 17:40

    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 讨论(0)
  • 2020-11-30 17:41
    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 讨论(0)
  • 2020-11-30 17:52

    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-
    
    0 讨论(0)
  • 2020-11-30 17:52

    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:

    0 讨论(0)
  • 2020-11-30 17:53
    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

    0 讨论(0)
提交回复
热议问题