我的文件很少,文件名如果vhost-<someport>.conf
,我想用文件名$ port vhost-$port.conf
替换每个文件中的端口号。
例如vhost-8081.conf
文件将包含行listen 8081
,vhost-8082.conf
文件将包含行listen 8082;
等。
vhost-8081.conf
vhost-8082.conf
etc..
server {
listen 8081;
}
server {
listen 8082;
}
答案 0 :(得分:1)
如果您有名为vhost-NUM.conf
的文件,则可以删除vhost-
前缀和.conf
后缀以提取端口号,然后使用sed -i
替换{ {1}}使用就地编号,更新文件:
listen .*
答案 1 :(得分:0)
这可能是你想要的:
for file in vhost-*.conf
do num=${file#vhost-}
sed -i "s/listen .*/vhost-$num;/" "$file"
done
cat vhost*
server {
vhost-8081.conf;
}
server {
vhost-8082.conf;