perl oneliner逐行读取文件并按位置跳过一些单词

perl oneliner to read file line by line and skip some words by position

给出这样的日志:

2022-03-30 21:05:00.266 +0200 CEST debug  Mylog 

是否可以使用一行命令逐行读取日志、解析并跳过例如第 3、4 和 5 个字(其中“字”是用空格分隔的任何内容),以便我会得到这个输出吗?

2022-03-30 21:05:00.266 Mylog  

或第 3 和第 5 有这样的输出?

2022-03-30 21:05:00.266 CEST Mylog 
perl -lane 'splice @F, 2, 3; print "@F"'
  • -l 从输入中删除换行符并将其添加到输出中
  • -n逐行读取输入,运行每行代码
  • -a 将空白处的每一行拆分为@F 数组
  • splice 从@F 中删除从位置 2 开始的三个元素(编号从 0 开始)