shell常用文件处理命令

本文介绍了在Linux环境中如何使用shell命令进行文件解压,如tar和gz文件的处理。此外,还详细讲解了文档查看技巧,包括使用head、tail、cat、less等命令查看文档内容,以及如何截取文档的特定部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 解压

1.1 tar 和 gz 文件

如果你有一个 .tar 文件,你可以使用以下命令来解压:

tar -xvf your_file.tar

在这个命令中,-x 表示解压缩,-v 表示详细输出(可选),-f 后面跟着要解压的文件名。

如果你的 .tar 文件同时被 gzip 压缩了(即 .tar.gz 文件),你可以使用以下命令来解压缩:

tar -xzvf your_file.tar.gz

在这个命令中,-z 表示使用 gzip 解压缩。

2. 文档查看

2.1 查看内容

常用查看命令

要查看文档的结构,使用 headtail 命令来查看文档的开头和结尾的几行,以获取一些关于文档内容的基本信息。例如:

head your_document.txt   # 查看文档的前几行
tail your_document.txt   # 查看文档的最后几行

查看文档的整个内容,使用 cat 命令将其打印到终端上:

cat your_document.txt

或者使用 less 命令来逐页查看整个文档:

less your_document.txt

查看前两行 – head

要查看文档的前两行,使用 head 命令并指定 -n 选项来显示指定行数。以下是示例命令:

head -n 2 your_document.txt

这将显示文档 your_document.txt 的前两行内容。

前两行前三列

head -n 2 your_document.txt  | awk '{print $1, $2, $3}'

前两行和后三列

head -n 2 your_document.txt  | awk '{print $NF, $(NF-1), $(NF-2)}'

查看后两行 – tail

tail -n 2 your_document.txt

前三行前三列

tail -n 2 your_document.txt  | awk '{print $1, $2, $3}'

前三行后三列

tail -n 3 your_document.txt | awk '{print $NF, $(NF-1), $(NF-2)}'
  1. 使用 tailawk 命令提取后三列数据
    由于 head 命令默认显示文件的前10行,而你想要获取的是后三列数据,你需要使用 tail 命令来获取文件的最后一行,然后使用 awk 来提取该行的后三列数据。例如:

    tail -n 1 your_document.csv | awk '{print $NF, $(NF-1), $(NF-2)}'
    

    在这个命令中:

    • tail -n 1 用于获取文件的最后一行。
    • awk '{print $NF, $(NF-1), $(NF-2)}' 用于打印当前行的最后三个字段。$NFawk 中的一个内置变量,表示当前行的最后一个字段。

    awk 默认使用空白字符(包括空格、制表符、换行符等)作为字段分隔符。在 awk 中,字段是通过一个或多个连续的空白字符分隔开的。字段用 $ 符号来引用,其中 $1 表示第一字段,$2 表示第二字段,以此类推。

请注意,上述命令假设 .csv 文件使用逗号作为字段分隔符,并且每行的字段数量足够多,以便能够提取到最后三个字段。如果 .csv 文件的字段分隔符不是逗号,你需要相应地调整 awk 命令中的分隔符。例如,如果字段分隔符是制表符(\t),你可以使用 gawk -F'\t' 来指定字段分隔符:

tail -n 1 cd8selectMatrix.csv | gawk -F'\t' '{print $NF, $(NF-1), $(NF-2)}'

经过测试,发现txt文档本身就是’\t’分割的。


每一行多少列

要确定每一行有多少列,使用 awk 命令来统计每行的字段数量。以下是一个示例命令:

awk '{print NF; exit}' your_document.txt

这个命令会打印出第一行的字段数量,然后退出。字段数量即为列数。

多少行

使用 wc 命令来统计文件的行数。以下是一个示例命令:

wc -l your_document.txt

这个命令将打印出文档 your_document.txt 中的行数。

2.2 截取demo样本

截取部分数据生成到新样本 – head

要生成一个包含文档前三行数据的新样本文件,你可以使用 head 命令将这三行数据复制到一个新文件中。以下是一个示例命令:

head -n 3 your_document.txt > new_sample.txt

这个命令将文档 your_document.txt 中的前三行数据复制到一个名为 new_sample.txt 的新文件中。新文件 new_sample.txt 将包含原始文档中的前三行数据。

截取数据 – awd

提取后三列后三行数据存到新文件

awk '{if (NR > 1 && NR <= 4) print $NF, $(NF-1), $(NF-2)}' your_document.txt > output.txt

提取后三列前三行数据存到新文件

  • 保留标题行
awk 'NR==1 || (NR>1 && NR<=4) {print $NF, $(NF-1), $(NF-2)}' your_document.txt > output.txt
  • 不保留标题行
awk 'NR > 1 && NR <= 4 {print $NF, $(NF-1), $(NF-2)}' your_document.txt  > output.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值