如何从 UNIX 文件中提取数据?

如何从 UNIX 文件中提取数据?

我是初学者

我想从文件中提取以“START OF TEC MAP”开头并以“END OF TEC MAP”结尾的数据。如何获取此特定间隔?我应该使用哪些命令?

文件:codg0010.17i.Z

答案1

打开终端并输入:

uncompress -c codg0010.17i.Z | sed -n '/START OF TEC MAP/,/END OF TEC MAP/p' 

要将结果输出到输出文件,请输入:

uncompress -c codg0010.17i.Z | sed -n '/START OF TEC MAP/,/END OF TEC MAP/p' >> output.txt

选项用于就地编辑文件。要从存档中提取文件并就地编辑它,而不是将输出写入 output.txt -ised

uncompress codg0010.17i.Z # This archive has only 1 file in it named codg0010.17i. 
sed -ni '/START OF TEC MAP/,/END OF TEC MAP/p' codg0010.17i

这将打印TEC 地图起点TEC 地图结束但是这个文件包含的不只是一个 TEC MAP 的数据,而是按顺序排列的 25 个不同 TEC MAP 的数据,并且上述命令将所有 25 个地图的数据一起打印。

解释

该命令部分sed形式如下:

sed -n '/WORD1/,/WORD2/p' /path/to/file
  • WORD1是起始字符串(TEC 地图起点
  • WORD2是结束字符串(TEC 地图结束
  • p是一个 sed 命令,用于打印特定行,在本例中为所有行,包括和之间的行TEC 地图起点TEC 地图结束
  • /path/to/file如果当前目录与包含该文件的目录相同,则为文件的路径或仅仅是其名称。

相关内容