我正在尝试使用 awk 处理日志文件。日志文件行类似于以下内容:
timestamp devicename data data data
timestamp devicename data data
timestamp devicename data data data
.....
我想创建一个类似于以下内容的 csv 文件
timestamp,devicename,all other data
如果设备名称后面的数据始终包含相同数量的分隔值,这将非常容易,但不幸的是,事实并非如此。我应该如何使用 awk 创建一个 CSV 文件,其中时间戳在 csv 文件中排在第一位,设备名称在其次,所有其他数据字段在第三列?
我在网上四处寻找,大多数人建议简单地将前一两个字段设置为“”,然后一次打印出所有内容(以获得字段范围),但这在那种情况下行不通,因为我仍然想要在 csv 文件中使用时间戳和设备名称。
最佳答案
使用awk
:
awk '{$1=$1",";$2=$2","}1' File
timestamp, devicename, data data data
timestamp, devicename, data data
timestamp, devicename, data data data
只需将 ,
添加到 1st
和 2nd
字段即可。
关于linux - 如何使用 awk 创建包含字段范围的 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31605519/