例如,我可能想:
tail -f logfile | grep org.springframework | <command to remove first N characters>
我在想tr可能有能力做到这一点,但我不确定。
例如,我可能想:
tail -f logfile | grep org.springframework | <command to remove first N characters>
我在想tr可能有能力做到这一点,但我不确定。
当前回答
我认为awk是最好的工具,因为它既可以过滤,也可以在过滤后的行上执行必要的字符串操作函数:
tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'
or
tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'
其他回答
sed 's/^.\{5\}//' logfile
然后把5换成你想要的数字…这应该能奏效……
编辑 如果对于每一行 sed的s / ^。5 \ \ {} / / g的日志文件
你可以用cut:
cut -c N- file.txt > new_file.txt
c:字符
file.txt:输入文件
New_file.txt:输出文件
N-:从第N个字符到第N个字符的长度被剪切输出到新文件中。
也可以有其他参数,比如'N', 'N-M', '-M'表示第N个字符,第N到第m个字符,第一个到第m个字符。
这将对输入文件的每一行执行操作。
下面是一个简单的函数,在bash中测试。函数的第一个参数是字符串,第二个参数是要剥离的字符数
function stringStripNCharsFromStart {
echo ${1:$2:${#1}}
}
用法:
$ stringStripNCharsFromStart "12abcdefgh-" 2
# 2abcdefgh-
截图:
我认为awk是最好的工具,因为它既可以过滤,也可以在过滤后的行上执行必要的字符串操作函数:
tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'
or
tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'
x=hello
echo ${x:1}
了喂
根据需要将1替换为N