zoukankan      html  css  js  c++  java
  • rename 后缀


    for file in $(find . -name "*.del" -type f);do mv "$file" "${file%.del}";done

    file=/dir1/dir2/dir3/my.file.txt
    我们可以用 ${ } 分别替换获得不同的值:
    ${file#*/}:拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
    ${file##*/}:拿掉最后一条 / 及其左边的字符串:my.file.txt
    ${file#*.}:拿掉第一个 .  及其左边的字符串:file.txt
    ${file##*.}:拿掉最后一个 .  及其左边的字符串:txt
    ${file%/*}:拿掉最后条 / 及其右边的字符串:/dir1/dir2/dir3
    ${file%%/*}:拿掉第一条 / 及其右边的字符串:(空值)
    ${file%.*}:拿掉最后一个 .  及其右边的字符串:/dir1/dir2/dir3/my.file
    ${file%%.*}:拿掉第一个 .  及其右边的字符串:/dir1/dir2/dir3/my

    //集体增加后缀
    find . ! -type d |xargs -i mv {} {}.c;
    find . ! -type d -exec mv -f {} {}.suf ;

    要想把my.file.txt 变成 my.file.cpp
    mv "$file" "${file%.*}.cpp"

    一.rename解决

    1.  Ubuntu系统下

    rename 's/.c/.h/'  ./*

    把当前目录下的后缀名为.c的文件更改为.h的文件

    2.  CentOS5.5系统下

    rename .c  .h   *.c

    把当前目录下的后缀名为.c的文件更改为.h的文件

    二.shell 脚本解决

    #!/bin/bash

    #http://blog.csdn.net/longxibendi
    find ./ -name *.c  | while read i
    do
            echo "$i";
            mv $i.c  $i.h
    done
     

    三.find  xargs 解决


     find ./ -name "*.c" | awk -F "." '{print $2}' | xargs -i -t mv ./{}.c  ./{}.h

    注意,第三种方案是递归的更改,会更改当前目录下及其子目录下所有匹配文件

  • 相关阅读:
    jTopo——js库
    node.js
    php 入门笔记
    D3 入门笔记
    webpack笔记
    React.js
    Grunt等前端自动化构建工具
    vue3.0的新特性
    electron-builder 打包流程
    vue里面如何下载图片,如何下载文件
  • 原文地址:https://www.cnblogs.com/gaoxianzhi/p/5555322.html
Copyright © 2011-2022 走看看