我刚开始制作批处理文件,非常感谢您的帮助,这可能是一个非常简单的问题。
我在一堆目录中有一堆文件,如下所示:
dir-1/index.html
dir-2/index.html
dir-3/index.html
...
dir-150/index.html每个文件都在HTML中包含文本“用第二列替换”和“用第三列替换”。
然后,我有一个包含三列信息的tsv文件,如下所示:
dir-1 dog cat
dir-2 mouse frog
dir-3 circus clown
...
dir-150 last one我试图批量编辑每个index.html文件,将第2列中的数据替换为第二列中的文本,第3列中的“用第三列替换”替换为第1列中列出的特定目录。对于如何在UNIX/Mac中这样做,有什么想法吗?
发布于 2015-01-21 23:59:20
假设changes.tab有选项卡分隔的值,如上面的示例(而不是像您的状态那样分隔逗号),那么您就可以开始这样做了:
#!/bin/sh
cat changes.tab | while read line; do
TARGETDIR="`echo "$line" | awk -F"\t" '{ print $1 }'`"
COL2="`echo "$line" | awk -F"\t" '{ print $2 }'`"
COL3="`echo "$line" | awk -F"\t" '{ print $3 }'`"
if [ -d "$TARGETDIR" ]; then
cat "$TARGETDIR/index.html" |
sed "s/Replace with second column/$COL2/g" |
sed "s/Replace with third column/$COL3/g" > temp
mv temp "$TARGETDIR/index.html"
fi
done测试并根据你的具体需要进行调整。另外,请注意,这将替换目标文件,,因此首先创建一个安全副本.
https://stackoverflow.com/questions/28074793
复制相似问题