如何在数字周围添加括号并在数字后面添加赋值运算符

如何在数字周围添加括号并在数字后面添加赋值运算符

我有一个大约 1000 行的文件,这里是前几行:

head file.regions.txt
cregions1
cregions2
cregions3
cregions4
cregions5
cregions6
cregions7
cregions8
cregions9
cregions10
...

我想在数字周围添加括号,并在数字后面的每一行添加“<-”!这是我想要的输出

head file.regions.output.txt
    cregions[1] <-
    cregions[2] <-
    cregions[3] <-
    cregions[4] <-
    cregions[5] <-
    cregions[6] <-
    cregions[7] <-
    cregions[8] <-
    cregions[9] <-
    cregions[10] <-
    ...

答案1

怎么样

sed -e 's/$/] <-/g' -e 's/cregions/cregions[/g' yourFile

答案2

您可以使用:

sed -r 's/^(cregions)([0-9]+)$/\1[\2] <-/' file.regions.txt >file.regions.output.txt

请注意,这不会添加任何前导制表符或空格。 (您在问题描述中没有提到这一点,但您的输出示例似乎有它们。)

这只会更改整个内容为 的行,并用一个或多个数字代替cregionsNN。如果您想将转换应用到任何以一位或多位数字结尾的行,您可以使用这个更简单的sed命令:

sed -r 's/[0-9]+$/[&] <-/' file.regions.txt >file.regions.output.txt

(谢谢感谢格伦·杰克曼指出此版本的命令不需要捕获组,因为它可以简单地使用&,它代表整个匹配。)

使用这些命令中的任何一个,您当然可以查看输出,而不是通过省略重定向将其写入文件>file.regions.output.txt

相关内容