【问题标题】:Unix: How to replace a pattern with every string from another fileUnix:如何用另一个文件中的每个字符串替换一个模式
【发布时间】:2018-07-03 11:21:29
【问题描述】:

我有一个名为 fileA 的文件,其中包含

comA comB comC

然后是另一个名为 fileB 的文件,包含

for bp in `pgrep REPLACE_IT`;
do
echo 1 > /proc/REPLACE_IT/oom_adj
echo 1 > /proc/$bp/oom_score_adj
done 2>/dev/null

如何将fileB中的每个单词REPLACE_IT替换为fileA中的每个单词,然后将结果打印到fileC

fileC 中的所需输出:

for bp in `pgrep comA`;
do
echo 1 > /proc/comA/oom_adj
echo 1 > /proc/$bp/oom_score_adj
done 2>/dev/null
for bp in `pgrep comB`;
do
echo 1 > /proc/comB/oom_adj
echo 1 > /proc/$bp/oom_score_adj
done 2>/dev/null
for bp in `pgrep comC`;
do
echo 1 > /proc/comC/oom_adj
echo 1 > /proc/$bp/oom_score_adj
done 2>/dev/null

感谢您的建议

【问题讨论】:

    标签: shell unix command-line


    【解决方案1】:

    这样的东西能解决问题吗?

    for i in $(cat fileA); do
        sed 's|REPLACE_IT|'$i'|g' <fileB >temp
        cat temp >> fileC
    done
    

    【讨论】:

    • 你的把戏几乎接近我的目标,我只是稍微适应了我的目标。你拯救了我的一天
    猜你喜欢
    • 2021-04-18
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 2017-05-18
    • 2010-10-20
    • 1970-01-01
    • 2013-12-03
    相关资源
    最近更新 更多