• #每日Linux小练习#02 tr命令的使用


    对于文本操作,tr命令的作用很大。今天对tr功能进行初步学习。

    1、 tr的工作原理

    tr命令不接受指定的文件参数,而只是对标准输入进行翻译

    tr的命令格式是tr SET1 SET2,凡是在SET1中的字符,都会被替换为SET2中相应位置上的字符 

    2、简单的替换功能

    tr 1 2 < ./material/20150804tr_height.txt
    tr ' ' '11' < ./material/20150804tr_height.txt

    3、对一系列字符进行处理

    tr 'a-z' 'A-Z' < ./material/20150804tr_word.txt
    tr '1-8' '[A*]'  < ./material/20150804tr_number.txt#重复指定的字符到与 SET1 相同长度为止 
    tr '1-8' '[A*5]B'  < ./material/20150804tr_number.txt# [CHAR*REPEAT],将CHAR重复REPEAT次数

    在练习中成长~

    #!/bin/bash
    echo "this is test for command 'tr'"
    
    
    ########################################
    folder="./material"
    if [ ! -d "$folder" ];then
        mkdir "$folder"
    fi
     
    echo "1.79 1.83" > ./material/20150804tr_height.txt
    echo "1.65 1.59" >> ./material/20150804tr_height.txt
    
    echo "AbcDe" > ./material/20150804tr_word.txt
    
    echo "1234567890" > ./material/20150804tr_number.txt
    
    echo "file writing finished"
    ########################################
    tr 1 2 < ./material/20150804tr_height.txt
    tr ' ' '11' < ./material/20150804tr_height.txt
    tr 'a-z' 'A-Z' < ./material/20150804tr_word.txt
    tr '1-8' '[**]'  < ./material/20150804tr_number.txt
    tr '1-8' '[A*5]B'  < ./material/20150804tr_number.txt

    补充知识:

    1、将内容写入文件

    两个管道命令就可以实现: 
    1)  >  符号表示将信息写入文件中 
    2)  >> 符号表示在已有的文件中添加信息 

    2、文件使用git进行管理,我不希望git把我的文件夹material也提交了,于是使用.gitignore文件

    在仓库目录下新建一个名为.gitignore的文件

    .gitignore文件对其所在的目录及所在目录的全部子目录均有效。通过将.gitignore文件添加到仓库,其他开发者更新该文件到本地仓库,以共享同一套忽略规则。

    【例子】

    # 忽略*.o和*.a文件

     *.[oa]

    # 忽略*.b和*.B文件,my.b除外

    *.[bB]

    !my.b

    # 忽略dbg文件和dbg目录

    dbg

    # 只忽略dbg目录,不忽略dbg文件

    dbg/

    # 只忽略dbg文件,不忽略dbg目录

    dbg

    !dbg/

    # 只忽略当前目录下的dbg文件和目录,子目录的dbg不在忽略范围内

    /dbg

     

    3、判断文件或者文件夹是否存在或者具有权限

    #shell判断文件夹是否存在
    
    #如果文件夹不存在,创建文件夹
    if [ ! -d "/myfolder" ]; then
      mkdir /myfolder
    fi
    
    #shell判断文件,目录是否存在或者具有权限
    
    
    folder="/var/www/"
    file="/var/www/log"
    
    # -x 参数判断 $folder 是否存在并且是否具有可执行权限
    if [ ! -x "$folder"]; then
      mkdir "$folder"
    fi
    
    # -d 参数判断 $folder 是否存在
    if [ ! -d "$folder"]; then
      mkdir "$folder"
    fi
    
    # -f 参数判断 $file 是否存在
    if [ ! -f "$file" ]; then
      touch "$file"
    fi
    
    # -n 判断一个变量是否有值
    if [ ! -n "$var" ]; then
      echo "$var is empty"
      exit 0
    fi
    
    # 判断两个变量是否相等
    if [ "$var1" = "$var2" ]; then
      echo '$var1 eq $var2'
    else
      echo '$var1 not eq $var2'
    fi
  • 相关阅读:
    Android Studio环境搭建
    JavaScript、Ajax与jQuery的关系
    Creational模式之Builder模式
    数据结构--二叉查找树的java实现
    ShopEx文章页添加上一篇下一篇功能
    WinCE的C#中使用StreamReader 来读取TXT文档,读取文本文档。
    关于对FLASH开发,starling、starling feathers、starling MVC框架的理解
    C语言实现牛顿迭代法解方程
    ios的notification机制是同步的还是异步的
    XCL-Chart柱形图的期望线/分界线
  • 原文地址:https://www.cnblogs.com/wuqi/p/4703592.html
Copyright © 2020-2023  润新知