zoukankan      html  css  js  c++  java
  • #每日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
  • 相关阅读:
    AJAX异步传输——以php文件传输为例
    js控制json生成菜单——自制菜单(一)
    vs2010中关于HTML控件与服务器控件分别和js函数混合使用的问题
    SQL数据库连接到服务器出错——无法连接到XXX
    PHP错误:Namespace declaration statement has to be the very first statement in the script
    【LeetCode】19. Remove Nth Node From End of List
    【LeetCode】14. Longest Common Prefix
    【LeetCode】38. Count and Say
    【LeetCode】242. Valid Anagram
    【LeetCode】387. First Unique Character in a String
  • 原文地址:https://www.cnblogs.com/wuqi/p/4703592.html
Copyright © 2011-2022 走看看