linux centos7 文件的行号与行数

我们查看文件时,希望准确看到文件中的行所在的位置,即行号是多少。根据行号,我们可以快速选择几行内容、删除某行内容等。显示行号或为文件添加序号,十分简单,需要时可以随时添加或在不需要时快速删除。

而文件中总共有多少行,也是我们关心的事情。有多种手段查出、看到文件的总行数。

行号或总行数在文件编辑、查看、应用中,十分重要,本文作一讨论。

一、行

处理文件时,大多以行为基本单元,一行一行处理。

sed读取一行,处理一行,输出一行,清空。再重新读取下一行,循环处理。

awk以行为基础,又细分为字段。为了准确定位或描述,一般都是提供某行某字段的详细信息。

二、行号

文件中并没有行号这部分内容,如果文件内容中确有左边的编号,也是为了查看方便,额外添加。

1.文件中无数字序号

查看文件时,可自由选择是否显示行号。

在用vim编辑文件内容时,也可以自由设置是否显示行号。

编辑时显示的行号最终不会保存到文件中。

如果确实需要在文件中有数字来标记行,需要采取另外手段。vim编辑时自动为文件添加数字标记,难度较大!PS:vim中显示的行号不能保存在文件中。

2.文件中添加序号标记行

a.cat -n 文件名 > 新文件名

原文件没有行序号

我们可以在查看时添加-n选项,cat命令显示出行号

如重定向到一个新文件,这个新文件中就包含了行序号

b.两列文件合并一个新文件

paste命令合并两个文件

paste fi passwd1

3.删除文件含有的行标记

a.cut命令

cut -f2 文件名>新文件

b.awk命令

awk '{ print $2 }' 文件名

c.sed命令

sed -r 's/(.*)\s(.*)/\2/' passwd3

三、行数

1.查看单个文件行数

a.wc

wc  -l 文件名

b.sed

sed -n '$=' 文件名

'$'是最后的标记,是结尾的标记

'='是sed中显示行号的选项

-n 取消全部显示(安静模式),仅显示模式匹配的代码行

c.awk

awk 'END{ print NR}'  文件名

NR环境变量:行数

d.vim

作为文件重要信息,vim查看文件内容时会额外标住总行数,仅供参考,不能引用。

vim + 文件名

vim 编辑文件时,在文件名前加上+ 选项,希望打开文件后光标处于最后一行

在下面的信息提示中,显示了文件名、文件总行数、总字符数

在下面的右侧,也显示了光标处于第64行第1个字符

e.ex

与vim类似,ex也有显示文件总行数的功能。

ex  文件名

底部信息显示与vim是一致的。

: =

在ex命令中,=是查看总行数

f.less nl cat

less命令,并在文件名前添加加上选项'-N':

less -N /etc/passwd  可以显示文件行号

nl /etc/passwd  也可以显示文件行号

cat –n /etc/passwd  也可以显示文件行号

这三个命令都是显示行号(最后一项就是总行数),但其他命令或程序不能引用这些行号或总行数,他们所显示的内容是供参考的,不命令的主要功能。

前面的都是单一命令或编辑器,相对好用一些。下面的是命令组合,也能达到目的。

g.cat wc

cat 文件名 | wc -l

cat -n 文件名

h.grep cat tall

grep -n "" 文件名 |cut -d: -f1|tall -1

多个命令组合

2.查看多个文件行数

多个文件名一起写,空格分隔

命令同上

部分方法只能查看总行数,部分命令包括每个文件的行数

3.编程查看普通文件的总行数

用命令处理常见问题,是首选之举。命令简单快捷,可见可改。只有需要复杂问题时,才用最科学最有效的编程方法。

下面是用while循环查看文件总行数的小程序。相对于while循环以行作为默认读取分隔符,for默认是空格作为读取内容的分隔符。用for循环时要修改IFS为"\n"。

cnt=0

while read line

do

        echo $line >/dev/null

        let cnt++

done <passwd3

echo $cnt

编程查看文件的总行数,比较简单。目录下所有文件的总行数也可以编程查看。基本上命令不能解决的,应用编程方法,都能解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_36142959

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值
>