如何用该值+常数替换一个值

萨德拉·阿夫斯坦(Sadra Avestan)

我有一个文件,其变量从G1到G229。我想用G230到G469代替它们;我该怎么做?我尝试了这个bash脚本,但是没有用:

#!/bin/bash

for num in {1..229}
  do
  echo G$num
  N=$(($num+229))
  echo G$N  
  sed -i -e 's/$G$num/$G$N/g' file
done
最小最大

sed解决方案。也许它太棘手和不理想,但它可以工作。作为实验:)。

sed通过执行由printfpaste用法生成的一个大命令序列来完成一个调用中的所有替换操作我想将此命令拆分为多行以提高可读性,但不能这样做-它随后停止工作。所以-oneliner:

sed -i -r "$(paste -d'/' <(printf 's/%s\\b\n' G{1..229}) <(printf '%s/g\n' G{230..458}))" file.txt

它正在转换为以下sed命令:

sed -i -r "s/G1\b/G230/g
s/G2\b/G231/g
s/G3\b/G232/g
s/G4\b/G233/g    
...
s/G227\b/G456/g
s/G228\b/G457/g
s/G229\b/G458/g" file.txt

解释

  1. sed -i -r "$(
  2. paste -d'/'-用斜杠连接左右部分(以3,4步生成)-/结果是这样的:s/G1\b/G230/g
  3. <(printf 's/%s\\b\n' G{1..229})-使sed替换命令的左边部分例如: s/G1\bs/G2\bs/G3\b,等。
    • \b-匹配单词边界;也就是说,如果左侧的字符是“单词”字符,而右侧的字符是“非单词”字符,则匹配,反之亦然。信息- GNU sed的,正则表达式扩展。
  4. <(printf '%s/g\n' G{230..458})-制作sed替代命令的正确部分例如: G230/gG231/gG232/g,等。
  5. )" file.txt - 输入文件。

测验

输入

var G1 = value;
G3 = G1 + G2; 
G3 = G1 + G2
G3 = ${G1} + G2
var G2 = value;
var G3 = value;
G224 = G3 + G215;
G124 = G124 + G215;
G124 = G124 + G12;
var G4 = value;
var G5 = value;
var G6 = value;
var G59 = value;
var G60 = value;
var G156 = value;
var G227 = value;
var G228 = value;
var G229 = value;

输出

var G230 = value;
G232 = G230 + G231;
G232 = G230 + G231
G232 = ${G230} + G231
var G231 = value;
var G232 = value;
G453 = G232 + G444;
G353 = G353 + G444;
G353 = G353 + G241;
var G233 = value;
var G234 = value;
var G235 = value;
var G288 = value;
var G289 = value;
var G385 = value;
var G456 = value;
var G457 = value;
var G458 = value;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何用该值的子字符串替换一个值?

如何用另一个文件的值替换一个文件的值?

如何用另一列值替换一个列值

如何用该时间戳的所有观测值的平均值替换一个时间戳的值

如何用另一个表中的相应值替换一个表中的ID?

如何用另一个数组索引值替换一个数组键值?

用另一个数据框的值替换一个值

如何根据另一列的值替换一个列的值?

如何用相同维度的另一个数据表的值替换一个数据表中的某个值

如何用 SQL Server 中 XML 数据中的另一个节点值替换一个节点值

用另一个向量的条件替换一个向量的多个值

用另一个Spark Java替换一个列值

链接的REPLACE函数在一个查询执行时仅替换一个值

从另一个列表替换一个列表中间的值

多次出现时替换一个时间序列中的一个值

用另一个变量的值替换一个变量中的NA

根据其他两个通道的值替换一个通道的像素值

如何在sql loader中用另一个值替换一个值?

如何在Scala中用另一个Seq中的值替换一个Seq中的值?

根据另一列的值替换一个列中的值

如何用R中的另一个数据帧替换一个数据帧的某些值?

如何用从同一行中可变数量的列连接的值替换一个 Excel 列中的值?

Array.splice替换多个值(尽管设置为仅替换一个)

如何在多元函数中替换一个变量的值?

我如何从数组中删除或替换一个值

使用JQ用同一词典中的另一个值替换一个值

将两个div的值相乘,然后用JS替换一个

在一行文本中查找并替换一个值

用另一个数据框的值替换一个数据框的列值