zoukankan      html  css  js  c++  java
  • 文件的行操作

    1.1 8

    输出test.txt文件内容时,不包含clsn字符串的命令

    文件内容:

    [root@znix ~]# cat /data/test.txt
    test
    liyao
    clsn

    1.1.1 方法一grep

    使用grep命令,找什么就写什么

    -v 参数是排除的意思

    [root@znix ~]# grep -v "clsn" /data/test.txt
    test
    liyao

    1.1.2 方法二head

    使用head显示文件前2行信息(-2参数是显示两行),默认显示前10行。

    [root@znix ~]# head -2 /data/test.txt
    test
    liyao

    1.1.3 方法三 sed

    sed命令使用单引号

    sed命令主要用于删除

    '/clsn/d' 表示删除clsn这个内容

    [root@znix ~]# sed '/clsn/d' /data/test.txt
    test
    liyao

    '3d'  表示删除第三行

    [root@znix ~]# sed  '3d'  /data/test.txt
    test
    liyao

    1.1.4 方法四 awk

    使用awk查找文本里的clsn/并显示:

    [root@znix ~]# awk '/clsn/' /data/test.txt
    clsn

    前面加!表示排除这个内容,不显示这个内容。

    [root@znix ~]# awk '!/clsn/' /data/test.txt
    test
    liyao

    1.2 9

    用一条命令完成创建目录/clsn/test,即创建/clsn目录及/clsn/test

    创建多级目录时需要添加参数 -p 表示创建多级目录。

    [root@znix ~]# mkdir -p /clsn/test
    [root@znix ~]# ls /clsn/
    alex.txt  alex.txt.bak  clsn.txt  test  test.sh  t.sh
    [root@znix ~]# ls -l  /clsn/test
    total 0

    1.3 10

    已知/tmp下已经存在test.txt文件,如何执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt,而让系统不提示是否覆盖(root权限下)。

    1.3.1 方法一:

          cp 取消别名

    [root@znix data]# cp /mnt/test.txt /tmp/

    1.3.2 方法二:

    使用命令的绝对路径

     [root@znix data]# /bin/cp /mnt/test.txt /tmp/

    1.4 11

    查看ett.txt文件(共100行)内第20到第30行的内容

    1.4.1 创建该文件

    使用seq命令创建一个100行的文件。

    [root@znix ~]# seq 5
    1
    2
    3
    4
    5
    [root@znix ~]#seq 100 >ett.txt

    1.4.2 方法一

    使用head找出前30行,通过管道传给tial,再使用tail找出后11行,然后输出。

    [root@znix ~]# head -30 ett.txt |tail -11
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30

    1.4.3 方法二

    使用sed查找20-30行,p表示行数,-n表示取消默认输出。

    [root@znix ~]# sed -n '20,30p'  ett.txt
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30

    1.4.4 方法三

          NR表示行,逗号表示2030,两个等于号才是真正的等于

    [root@znix ~]# awk 'NR==20,NR==30' ett.txt

          &&表示和, => 20大于等于20 <=30 小于等于30

    [root@znix ~]# awk 'NR>=20 && NR<=30' ett.txt
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30

    1.4.5 方法四

    由于这个文件的第20行正好是20。使用grep找到20并输出,-A10 表示输出后面的10行。

    [root@znix ~]# grep -A10 "20"  ett.txt
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30

    1.5 13

    /clsn目录及其子目录下所有以扩展名.sh结尾的文件中,文件含.clsn的字符串全部替换为znix

    1.5.1 创建环境

    mkdir -p /clsn/test
    cd /clsn
    echo "clsn">test/del.sh
    echo "clsn">test.sh
    echo "clsn">t.sh
    touch clsn.txt
    touch alex.txt

    1.5.2 方法一

    sed生效需要增加 -i 参数。

    使用find找在/clsn 目录下的 文件,名字是.sh 结尾的,使用管道xgras  传给sed,然后使用's#要被替换的内容#替换的内容#g' 文件进行修改。

    [root@znix clsn]# find /clsn/ -type f -name "*.sh"|xargs sed 's#clsn#znix#g'  -i
    znix
    znix
    znix

    1.5.3 方法二

    $( ) 先执行括号里面命令,再执行前面的命令

    [root@znix clsn]# sed 's#clsn#znix#g' $(find /clsn/ -type f -name "*.sh")
    znix
    znix
    znix

     

  • 相关阅读:
    jquery 序列化form表单
    nginx for windows 安装
    nodejs idea 创建项目 (一)
    spring 配置 shiro rememberMe
    idea 2018 解决 双击shift 弹出 search everywhere 搜索框的方法
    redis 在windows 集群
    spring IOC控制反转和DI依赖注入
    redis 的安装
    shiro 通过jdbc连接数据库
    handlebars的用法
  • 原文地址:https://www.cnblogs.com/clsn/p/7505118.html
Copyright © 2011-2022 走看看