specie...">
美文网首页
一点文件操作命令

一点文件操作命令

作者: 记号晴系 | 来源:发表于2019-04-22 21:20 被阅读0次

    删除文本中多余的东西

    > > > ~~~
    > > > 
    > > > # notepad++查找并删除重复行只需要一条命令
    > > > ^(.*?)$\s+?^(?=.*^\1$) 
    > > > 
    > > > # 直接全部替换,注意勾选:正则和匹配行
    > > > 
    > > > ~~~
    > > >
    > > > 
    
    • 文件里的文件名写入

      ls reads / | sed  "s/.gz//g" > species.txt #将reads文件夹后缀名为.gz的文件名导入TXT里,在reads外输入
      
    • sed命令下批量替换文件内容

    格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名
    
    -i 表示inplace edit,就地修改文件
    
     -r 表示搜索子目录
    
     -l 表示输出匹配的文件名
    s表示替换,d表示删除
    

    示例:

    sed -i "s/shan/hua/g"  lishan.txt # 把当前目录下lishan.txt里的shan都替换为hua
    
    sed的其他用法如下:
    
    1、删除行首空格
       sed 's/^[ ]*//g' filename
       sed 's/^ *//g' filename
       sed 's/^[[:space:]]*//g' filename
    
    2、行后和行前添加新行
       行后:sed 's/pattern/&\n/g' filename
       行前:sed 's/pattern/\n&/g' filename
       &代表pattern
    
    3、使用变量替换(使用双引号)
        sed -e "s/$var1/$var2/g" filename
    
    4、在第一行前插入文本
        sed -i '1 i\插入字符串' filename
    
    5、在最后一行插入
        sed -i '$ a\插入字符串' filename
    
    6、在匹配行前插入
        sed -i '/pattern/ i "插入字符串"' filename
    
    7、在匹配行后插入
       sed -i '/pattern/ a "插入字符串"' filename
    
    8、删除文本中空行和空格组成的行以及#号注释的行
       grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d
    
    • tr命令的使用手册
    1、将文件file中出现的"abc"替换为"xyz"
     
    
    
    代码如下:
    
    # cat file | tr "abc" "xyz" > new_file
    
    【注意】这里,凡是在file中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y"字母,"c"字母替换为"z"字母。而不是将字符串"abc"替换为字符串"xyz"。
     
    2、使用tr命令“统一”字母大小写
    (小写 --> 大写)
    
    代码如下:
    
    # cat file | tr [a-z] [A-Z] > new_file
    
    (大写 --> 小写)
    
    代码如下:
    
    # cat file | tr [A-Z] [a-z] > new_file
    3、把文件中的数字0-9替换为a-j
     
    
    代码如下:
    
    # cat file | tr [0-9] [a-j] > new_file
    4、删除文件file中出现的"Snail"字符
    代码如下:
    
    # cat file | tr -d "Snail" > new_file
    
    【注意】这里,凡是在file文件中出现的'S','n','a','i','l'字符都会被删除!而不是紧紧删除出现的"Snail”字符串。
     
    5、删除文件file中出现的换行'\n'、制表'\t'字符
    代码如下:
    
    # cat file | tr -d "\n\t" > new_file
    
    不可见字符都得用转义字符来表示的,这个都是统一的。
     
    6、删除“连续着的”重复字母,只保留第一个
    代码如下:
    
    # cat file | tr -s [a-zA-Z] > new_file
    7、删除空行
    代码如下:
    
    # cat file | tr -s "\n" > new_file
    8、删除Windows文件“造成”的'^M'字符
    代码如下:
    
    # cat file | tr -d "\r" > new_file
    
    或者
    
    代码如下:
    
    # cat file | tr -s "\r" "\n" > new_file
    
    【注意】这里-s后面是两个参数"\r"和"\n",用后者替换前者
     
    9、用空格符\040替换制表符\011
    代码如下:
    
    # cat file | tr -s "\011" "\040" > new_file
    
    10、把路径变量中的冒号":",替换成换行符"\n"
    代码如下:
    
    # echo $PATH | tr -s ":" "\n"
    11、若要将大括号转换为小括号,请输入:
    代码如下:
    
    tr '{}' '()' < textfile > newfile
    
    这便将每个 {(左大括号)转换成 ((左小括号),并将每个 }(右大括号)转换成 )(右小括号)。所有其它的字符都保持不变。
    12、若要将大括号转换成方括号,请输入:
    代码如下:
    
    tr '{}' '\[]' < textfile > newfile
    
    这便将每个 {(左大括号)转换成 [(左方括号),并将每个 }(右大括号)转换成 ](右方括号)。左方括号必须与一个 "\"(反斜扛)转义字符一起输入。
    13、若要将小写字符转换成大写,请输入:
    代码如下:
    
    tr 'a-z' 'A-Z' < textfile > newfile
    14、若要创建一个文件中的单词列表,请输入:
    代码如下:
    
    tr -cs '[:lower:][:upper:]' '[\n*]' < textfile > newfile
    
    这便将每一序列的字符(除大、小写字母外)都转换成单个换行符。*(星号)可以使 tr 命令重复换行符足够多次以使第二个字符串与第一个字符串一样长。
    15、若要从某个文件中删除所有空字符,请输入:
    代码如下:
    
    tr -d '\0' < textfile > newfile
    16、若要用单独的换行替换每一序列的一个或多个换行,请输入:
    代码如下:
    tr -s '\n' < textfile > newfile
    或
    代码如下:
    
    tr -s '\012' < textfile > newfile
    17、若要以“?”(问号)替换每个非打印字符(有效控制字符除外),请输入:
    
    代码如下:
    
    tr -c '[:print:][:cntrl:]' '[?*]' < textfile > newfile
    
    这便对不同语言环境中创建的文件进行扫描,以查找当前语言环境下不能打印的字符。
    18、要以单个“#”字符替换 <space> 字符类中的每个字符序列,请输入:
    代码如下:
    
    tr -s '[:space:]' '[#*]'
    

    相关文章

      网友评论

          本文标题:一点文件操作命令

          本文链接:https://www.haomeiwen.com/subject/vhcpgqtx.html