gpt4 book ai didi

BASH echo 与 sed

转载 作者:行者123 更新时间:2023-12-05 02:23:40 27 4
gpt4 key购买 nike

我有:

Location.txt(内容)

some_line1
some_line2
some_line3

region.txt(内容)

region1
region2
region3

uri.txt(内容)

/some_text/some_text1/***/
/some_text/***/some_text2/
/***/some_text/some_text3/

我需要创建文件

region1
region2
region3

并且他们每个人都必须填写以下内容(地区名称而不是星星)

文件区域1示例

/some_text/some_text1/region1/
some_line1
some_line2
some_line3

/some_text/region1/some_text2
some_line1
some_line2
some_line3

/region1/some_text/some_text3
some_line1
some_line2
some_line3

文件 region2 示例(区域名称而不是星星)

/some_text/some_text1/region2/
some_line1
some_line2
some_line3

/some_text/region2/some_text2
some_line1
some_line2
some_line3

/region2/some_text/some_text3
some_line1
some_line2
some_line3

现在我有

#!/bin/bash

while read region
do
while read uri
do
echo $uri >> "/home/user/regions/$region"
done < uri.txt
done < region.txt

此脚本使用 region.txt 中的行名称创建文件,并用 uri.txt 中的行填充它。

但是我必须制作很多文件。每个文件应填充多个位置,但每个位置的一行应更改为 uri.txt 中的行。

看起来我必须使用

cat $file|sed 's/^was/now/'

但是我不知道怎么用。

请帮忙。

最佳答案

我会为此使用 awk:

awk -v loc="$(< Location.txt)" '
NR==FNR {region[$1]=1;next}
{for (reg in region) {
sub(/\*\*\*/, reg)
f = reg ".txt"
print > f
print loc > f
}}
' region.txt uri.txt

关于BASH echo 与 sed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19858538/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com