awk如何替换批量文件中的字符 65

test目录下有N个文件,如123……N,要将这些文件中的一些字符替换掉,如将a替换成A后保存到test1目录下,文件名为123……N... test目录下有N个文件,如1 2 3……N,要将这些文件中的一些字符替换掉,如将a替换成A后保存到test1目录下,文件名为1 2 3……N 展开
 我来答
options_mark
2013-06-05 · TA获得超过168个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:133万
展开全部

 

能否达到你的需求.

以上重点可关注

for i in `ls testOne/*.txt`         #列出要处理的文件
do

awk '{ if(sub(/a/, "A")) print $0 >> "/tmp/"FILENAME} ' $i   #sub(/a/, "A")  (/搜索字符串/, “替换字符串”)

#awk '{ if(sub(/a/, "A")) print $0,FILENAME  >> "/tmp/"FILENAME} ' $i #加上FILENAME可以看一下变量

done

 

百度搜索: awk 函数使用

dingchaoant
2013-06-05 · TA获得超过1110个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:103万
展开全部
#!/bin/sh

#源目录
SOURCE_DIR="/home/dingchao/test"
#目标目录
DEST_DIR="/home/dingchao/test1"
#临时文件,记录源目录下的文件
TMP_FILE="/home/dingchao/.tmp"
#创建目标目录
if [ ! -d ${DEST_DIR} ]
then
mkdir -p ${DEST_DIR}
fi
#创建临时文件
if [ ! -f ${TMP_FILE} ]
then
touch ${TMP_FILE}
fi
cd ${SOURCE_DIR}
#列出所有文件(包含隐藏文件)
ls -a > ${TMP_FILE}
for FILE in `cat ${TMP_FILE}`
do
#除去"."和".."
if [[ ${FILE} == "." || ${FILE} == ".." ]]
then
continue
fi
#只有是普通文件才会继续
if [[ ! -f ${FILE} ]]
then
continue
fi
#这里是替换字符串的操作
cat ${FILE} | sed 's/a/A/g' > ${DEST_DIR}/${FILE}
done
return 0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f0eeb98
2013-06-05
知道答主
回答量:2
采纳率:0%
帮助的人:2949
展开全部
sed 更简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式