例如,我可能想:
tail -f logfile | grep org.springframework | <command to remove first N characters>
我在想tr可能有能力做到这一点,但我不确定。
tr
laximzn51#
使用cut。例如,去除每行的前4个字符(即从第5个字符开始):
cut
tail -f logfile | grep org.springframework | cut -c 5-
57hvy0tb2#
sed 's/^.\{5\}//' logfile
然后你用你想要的数字替换5 ...它应该能起到作用...
EDIT如果为每一行sed 's/^.\{5\}//g' logfile
sed 's/^.\{5\}//g' logfile
ttp71kqs3#
您可以使用cut:
cut -c N- file.txt > new_file.txt
-c:个字符file.txt:输入文件new_file.txt:输出文件N-:要剪切并输出到新文件中的N到结尾的字符。还可以有其他参数,如:“N”、“N-M”、“-M”分别表示第n个字符、第n个至第m个字符、第1个至第m个字符。这将对输入文件的每一行执行操作。
-c:
file.txt:
new_file.txt:
N-:
gstyhher4#
这是一个简单的函数,在bash中测试过。函数的第一个参数是字符串,第二个参数是要剥离的字符数
function stringStripNCharsFromStart { echo ${1:$2:${#1}} }
用法:
$ stringStripNCharsFromStart "12abcdefgh-" 2 # 2abcdefgh-
屏幕截图:
g9icjywg5#
tail -f logfile | grep org.springframework | cut -c 900-
会删除前900个字符cut使用900-显示到行尾的第900个字符但是,当我通过grep将所有这些内容传送到管道时,我什么也得不到
syqv5f0l6#
我认为awk是最好的工具,因为它既可以过滤,又可以对过滤后的行执行必要的字符串操作函数:
awk
tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'
或
tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'
myzjeezk7#
x=hello echo ${x:1}
返回ello根据需要将1替换为N
7条答案
按热度按时间laximzn51#
使用
cut
。例如,去除每行的前4个字符(即从第5个字符开始):57hvy0tb2#
然后你用你想要的数字替换5 ...它应该能起到作用...
EDIT如果为每一行
sed 's/^.\{5\}//g' logfile
ttp71kqs3#
您可以使用
cut
:-c:
个字符file.txt:
输入文件new_file.txt:
输出文件N-:
要剪切并输出到新文件中的N到结尾的字符。还可以有其他参数,如:“N”、“N-M”、“-M”分别表示第n个字符、第n个至第m个字符、第1个至第m个字符。
这将对输入文件的每一行执行操作。
gstyhher4#
这是一个简单的函数,在bash中测试过。函数的第一个参数是字符串,第二个参数是要剥离的字符数
用法:
屏幕截图:
g9icjywg5#
会删除前900个字符
cut
使用900-显示到行尾的第900个字符但是,当我通过grep将所有这些内容传送到管道时,我什么也得不到
syqv5f0l6#
我认为
awk
是最好的工具,因为它既可以过滤,又可以对过滤后的行执行必要的字符串操作函数:或
myzjeezk7#
返回ello
根据需要将1替换为N