Linux下对文件的一些操作

       今天来聊一聊linux对文件的一些操作,首先准备一个文件,里面存储一些字符串,如下图所示。

       一、获得字符串在文件中所在的行

grep -n 'a b c' 1.txt 

可以看出“a b c”在文件中分别为第1行和第2行。

         1、也可以使用cat获得某个关键字所在的行数 https://my.oschina.net/bobwei/blog/1823639

cat -n xxx.log | grep "id='23'" | awk '{print $1}

        2、根据行数将某行输出到新文件,https://blog.csdn.net/qq_27563511/article/details/79269494

             vim xxx.log  打开文件

             :行号 w 新文件名

 

        3、根据关键字将关键字符串所在的行输出到新文件中

grep -n 'a b c' 1.txt > new.txt

        即可将‘a b c’所在的行输出到new.txt文件中

         二、输出一个文件的几行

sed -n "2, 3p" 1.txt 

输出文件的第2行和第三行,sed -n "起始行 结束行p" filename,结束行后面那个字母'p'不要忘记

        三、输出一个文件的几列

awk '{print $1 $2}' 1.txt

 输出文件的第1列和第二列,awk '{print $1$2}' filename 输出第一列和第二列,两列之间没有空格

                                              awk '{print $1,$2}' filename 输出第一列和第二列,两列之间有空格,

       四、输出一个文件的第n1-n2行的第l1-l2列

sed -n '2, 3p' 1.txt | awk '{print $1,$2}'

输出文件的第2行和第3行中第1列和第二列的字符

        五、输出文件中某一个字符串所在的行的第l1-l2列,例如:输出'a b c'所在的行中第1-2列的字符

grep -n 'a b c' 1.txt | awk '{print $1,$2}'

        六、比较文件夹下面文件的差异

我们有时候需要比较两个文件夹下面各个文件的差异,直接肉眼去看可能会比较麻烦。所以可以利用linux命令:diff

最直接的使用方法就是:

diff -urNa dir1 dir2
u 使用统一的输出格式来展示不同
r 如果文件夹下面还有文件夹,则递归的进行比较
N 如果一个文件夹中有a.txt文件,而另一个文件夹中没有,则默认另一个文件夹中也有一个a.txt,但是内容为空
a 对比每一个文件,一行一行的对比

这样,命令行就会输出各个文件的不同。

如果这样看还不直观,我们可以根据上面提示出来的文件名字,使用 vimdiff 命令

vimdiff file1 file2

vimdiff 会指示出两个文件的差异,如果一个文件中有而另一个文件中没有的行就会标记为红色,两个文件中都有但是存在差异的行就会标记为蓝色。相同的地方会被折叠。

https://www.cnblogs.com/xudong-bupt/p/6493903.html

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值