Shell获取目录下文件名、后缀并操作

1.文件名、文件后缀获取.

已有文件  FILE="example.tar.gz",获取文件名和文件后缀方式如下:

echo "${FILE%%.*}"
# => example

echo "${FILE%.*}"
# => example.tar

echo "${FILE#*.}"
# => tar.gz

echo "${FILE##*.}"
# => gz

2.对目录下特定文件类型进行操作

选定某目录下文件后缀为.sh的文件,将其改为后缀为.c的文件,脚本如下

#!/bin/bash

for file in $(ls ./)
do
    if [ "${file##*.}" = "sh" ]; then
        mv ${file} ${file%.*}.c
    fi
done

注意点:在shell语句判断中 [ "${file##*.}" = "sh" ]  等号两边都要有空格,等号两边变量需要用“”,中括号两边要有空格。

原文地址:https://www.cnblogs.com/kuangsyx/p/12595888.html

时间: 2024-10-03 19:01:02

Shell获取目录下文件名、后缀并操作的相关文章

shell获取目录下(包括子目录)所有文件名、路径、文件大小

一例shell脚本:取得目录下(包括子目录)所有文件名.路径与文件大小. 代码,shell脚本: lsdir.sh #!/bin/bash # #site: www.jquerycn.cn function ergodic(){ for file in `ls $1` do if [ -d $1"/"$file ] then ergodic $1"/"$file else local path=$1"/"$file local name=$fil

shell获取目录下所有文件夹的名称并输出

获取指定目录/usr/下所有文件夹的名称并输出: shell代码: 1 #!/bin/bash 2 #方法一 3 dir=$(ls -l /usr/ |awk '/^d/ {print $NF}') 4 for i in $dir 5 do 6 echo $i 7 done 8 ####### 9 #方法二 10 for dir in $(ls /usr/) 11 do 12 [ -d $dir ] && echo $dir 13 done 14 ##方法三 15 16 ls -l /us

更具后缀名获取目录下的文件名

更具后缀名获取目录下的文件名的方法: 方法1: 1 import java.util.List; 2 import java.io.File; 3 import java.util.ArrayList; 4 5 /** 6 * 自定义"文件过滤器" --筛选出指定命名条件的文件 7 * @author fereli 8 * 9 */ 10 public class FiletTest6 { 11 public static File[] getFiles(File f,String s

使用windows API函数获取目录下所有文件名---目录下文件的扫描和处理

直接上代码 // test_max.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <windows.h> #include <Shlwapi.h> #include <iostream> #include <string> #include <vector> #pragma comment(lib,"shlwapi.lib") //注意放置的位置

Perl获取目录下文件或者包含子目录下文件

1 my $dir = "D:\\My_Work\\Temp"; 2 my @files = (); 3 4 #获取给定目录下文件 5 @files = get_dir_files($dir); 6 7 #获取给定目录以及子目录下文件 8 @files = get_dir_files_x($dir); 9 10 #获取目录下以及子目录下文件,返回的结果中包含路径 11 sub get_dir_files_x{ 12 my ($dir_p) = @_; 13 my @files = ()

大麦大的学习之路(1)获取目录下的所有文件 Directory

使用Directory, Directory是公开用于创建.移动和枚举通过目录和子目录的静态方法. 此类不能被继承. msdn:http://msdn.microsoft.com/zh-cn/library/system.io.directory(v=vs.110).aspx EnumerateFiles(string) 返回指定路径中的文件名的可枚举集合. EnumerateDirectories(string) 返回指定路径中的目录名称的可枚举集合 通过这两个方法即可获取目录下所有的文件和文

linux获取目录下文件

查看当前目录下的文件:find . -type f查看当前目录下的文件夹: find . -type d如果文件file1不为空: if [ -s file1 ];then       echo "file1 不为空"fi #!/bin/sh for f in `find ./testdir -type f`; do         if [ -s $f ];then                 echo $f is not empty.                 echo 

C# 获取目录下的所有文件清单

1.递归获取目录下的所有文件清单 调用: List<string> fileList = GetFileList(path); 方法 private static List<string> GetFileList(string path) { List<string> fileList = new List<string>(); if (Directory.Exists(path) == true) { foreach (string file in Dir

TreeView获取目录下的所有文件

/// <summary> /// TreeView获取目录下的所有文件 /// </summary> /// <param name="tree"></param> /// <param name="dirname"></param> /// <returns></returns> public static bool InitTreeView(TreeView tre