Batch file 用文件名替换文件中静态字符串的批处理脚本
我在Batch file 用文件名替换文件中静态字符串的批处理脚本,batch-file,filenames,text-processing,Batch File,Filenames,Text Processing,我在c:\data\中有3000个文件,我需要用文件名替换每个文件中的静态字符串。例如,在文件12345678.txt中会有一些记录以及字符串9999999,我想用文件名12345678替换9999999 如何使用批处理脚本执行此操作?试试这个 replace_string="99999999" for f in *.txt; do sed -i "s/${replace_string}/${f%.*}/g" "$f"; done 说明: *.txt中f的;做完成:循环浏览当前目录中
c:\data\
中有3000个文件,我需要用文件名替换每个文件中的静态字符串。例如,在文件12345678.txt
中会有一些记录以及字符串9999999
,我想用文件名12345678
替换9999999
如何使用批处理脚本执行此操作?试试这个
replace_string="99999999"
for f in *.txt; do
sed -i "s/${replace_string}/${f%.*}/g" "$f";
done
说明:
- *.txt中f的
:循环浏览当前目录中名为;做完成
的文件*.txt
就地编辑sed-i。。。文件
(文件
)-i
将(“s/pattern/replacement/g”
)模式替换为全局替换(s
)g
不带扩展名的文件名()${f%.*}
- 试试这个
replace_string="99999999"
for f in *.txt; do
sed -i "s/${replace_string}/${f%.*}/g" "$f";
done
说明:
- *.txt中f的
:循环浏览当前目录中名为;做完成
的文件*.txt
就地编辑sed-i。。。文件
(文件
)-i
将(“s/pattern/replacement/g”
)模式替换为全局替换(s
)g
不带扩展名的文件名()${f%.*}
find . -regex '.*/[0-9]+\.txt' -type f -exec gawk -i inplace '
BEGINFILE {f = FILENAME; sub(".*/", "", f); sub(/\..*/, "", f)}
{gsub(/\<99999999\>/, f); print}' {} +
find-regex'.*/[0-9]+\.txt'-type f-exec gawk-i in place'
BEGINFILE{f=FILENAME;sub(.*/,“”,f);sub(/\..*/,“”,f)}
{gsub(/\/,f);print}{}+
使用GNU工具:
find . -regex '.*/[0-9]+\.txt' -type f -exec gawk -i inplace '
BEGINFILE {f = FILENAME; sub(".*/", "", f); sub(/\..*/, "", f)}
{gsub(/\<99999999\>/, f); print}' {} +
find-regex'.*/[0-9]+\.txt'-type f-exec gawk-i in place'
BEGINFILE{f=FILENAME;sub(.*/,“”,f);sub(/\..*/,“”,f)}
{gsub(/\/,f);print}{}+
GNUsed
将使用-i
标志使编辑“永久”;否则,转换的内容将发送到标准输出。最初不清楚,但问题是在Windows上,解决方案需要是批处理脚本GNUsed
将使用-i
标志使编辑“永久”;否则,转换的内容将发送到标准输出。最初不清楚,但问题在Windows上,解决方案需要是批脚本。最初不清楚,但问题在Windows上,解决方案需要是批脚本。最初不清楚,但问题是在Windows上,解决方案需要是批处理脚本StackOverflow不是免费的代码编写服务,我们希望那些需要帮助的人至少尝试过他们需要帮助的任务。要做到这一点,您应该在问题中提供代码的详细信息、特定问题以及足够的详细信息,以便帮助人员复制问题。当你想提供你的代码时,请突出显示它并按下{}
按钮以正确格式化它。但是,StackOverflow不是免费的代码编写服务,我们希望那些需要帮助的人至少尝试过他们需要帮助的任务。要做到这一点,您应该在问题中提供代码的详细信息、特定问题以及足够的详细信息,以便帮助人员复制问题。当您需要提供代码时,请突出显示该代码,然后按{}
按钮以正确设置其格式。