shell 文字和檔案批量處理

2021-06-26 14:26:37 字數 1764 閱讀 5046

將檔名中包含aa-aa-的字元去掉:

#!/bin/bash

catch_string='aa-aa-*'

for i in $(find ./* -name $catch_string)

do newname=$(echo $i | sed -e 's/aa-aa-//')

echo $newname

mv $i $newname

done

顯示乙個檔案中的include檔案和其存放路徑

#!/bin/bash

for i in $(find ./* -name '*.*')

doecho

echo

echo

echo '%%%%%%%%%%%%%%%%%file' $i 'included sercher%%%%%%%%%%%%%%%%%'

cat $i | grep -r '#include' >>file2

awk '' file2 >>file1

#cat file1

echo  >file2

while read line

doecho $line | sed -e 's/>file2

donecat file2

echo  >file1

while read line

doecho $line | sed -e 's/>//' >>file1

donecat file1

echo  >file2

while read line

doecho $line | sed -e 's/"//' >>file2

donecat file2

echo  >file1

sed -i '/^\+$/d' file2

sed -i '/^$/d' file2

#cat file2

while read line

dofile_name=$(basename $line)

#echo $file_name

file_path=$(dirname $line)

#echo $file_path

echo 

echo '********************find' $line 'results*********************'

echo 

find /usr/include/* -name $file_name

doneecho  >file2

done

在乙個資料夾中使用aa-aa-標誌檔名篩選出與另乙個資料夾中相對應的檔案。

#!/bin/bash

for i in $(find ./* -name "aa-aa-*")

donew_file=$(echo $i | sed -e 's/_xiugai/_primery/')

pri_file=$(echo $new_file | sed -e 's/aa-aa-//')

echo  $new_file

mv $pri_file $new_file

done

將檔案中include路徑的下劃線翻**

#!/bin/bash

input_arg1=$1

str="*"

ser_folder=$$

for i in $(find $ser_folder -name "*")

doecho "$i"

sed -i '/include/ ' $i

done

Linux中便捷的檔案批量處理

在linux的實際使用過程中,建立多個檔案 修改多個檔案 查詢檔案中的某個部分等需求都需要有一種能夠實現檔案批量處理的方法,這篇文章主要介紹了常用的一些檔案批量操作指令,大家一起學習一下吧。匹配0 任意字元 alpha 匹配單個字母 lower 匹配單個小寫字母 upper 匹配單個大寫字母 dig...

檔案批量重新命名

今天遇到乙個問題,有一批檔案,需要修改字尾名,還要將前面的部分字元刪除,首先想到重新命名命令 ren 試了幾次,無法實現需求,只能,批處理了。在網上查了一下,寫了個,將字尾為.doc.doc的該為只有乙個.doc echo off setlocal enabledelayedexpansion 開啟...

檔案批量操作之旅

檔案重新命名 os.rename a.txt b.txt 檔案批量操作 my code test 1.jpg 2.jpg import os file list os.listdir test 當前目錄下的檔案列表 相對路徑 以當當前目錄為起點的路徑 for f in file list print...