如何解析这些数据

如何解析这些数据

我有一个包含如下数据的文件:

15-06-18 22:00 2968

每个条目都用新行分隔。我想提取最后一个数字 (2968)。我该怎么做?(我在 Linux 上使用bash)。

抱歉,如果我没有使用正确的标签/发帖的地方不对。我不知道该把这个问题放在哪里。

答案1

假设内容在名为“file”的文件中,则应该执行以下操作。

cut -d ' ' -f 3 file

cut 是 Unix 命令。从手册页中:

  • cut-从文件的每一行中删除部分内容
  • -d表示用于切割的分隔符。
  • -f选择哪些字段。
  • file是源文件。

结果发送到标准输出。

答案2

打印最后一列:

awk '{print $NF}' file

输出:

2968

该变量NF设置为输入记录中的字段总数。$NF 始终包含最后一列的内容。更短:

awk '$0=$NF' file

答案3

awk您可以使用,cut或者sed甚至是 grep 与 regex 的某种组合来提取所需的数据。

如果您拥有的文件中每一行的数据都遵循您在此处显示的确切模式:

15-06-18 22:00 2968

然后,您可以通过以下方式提取最后一个数字:

awk '{ print $3 }' file_path

为了保存数据,您可以将其重定向到另一个文件:

awk '{ print $3 }' file_path > new_file

怎么运行的 :

基本上,awk是用于文本数据操作的非常强大的工具。对于你的情况:

15-06-18 22:00 2968

上面的行可以视为 3 个字符串,space中间用 a 分隔,awk默认情况下将空格视为分隔符(由-F)。

要尝试使用 awk 的一些乐趣,请使用您的数据尝试一下,您会理解得更好。

awk -F: '{ print $2 }' your_file
awk -F- '{ print $3 }' your_file

请随意添加更多细节。

答案4

或者在 bash 中:

#!/bin/bash

cat "$1" | while read day hour value ; do
    echo $value
done

相关内容