仅转换逗号分隔文件中的某些条目

仅转换逗号分隔文件中的某些条目

我有一个包含一些位元分析信号的网表文件。我想更改信号名称,如下所示。

就像是

\abc[0],\abc[1].....
\xyz[0],\xyz[2]....

我希望它像

abc_0,abc_1....
xyz_1,xyz_1....

我希望仅针对特定的信号集执行此操作,否则我将删除\]替换[_.

如何仅针对特定信号列表执行此操作?有人可以帮我解决这个问题吗?

答案1

使用问题中的数据:

$ sed 's/\\\([[:alnum:]]*\)\[\([[:digit:]]*\)\]/\1_\2/g' file
abc_0,abc_1.....
xyz_0,xyz_2....

sed命令匹配\word[digits]文本,其中word是任意字母数字字符的字符串,其中digits是一串数字(这些字符串允许为空,更改*\{1,\}需要至少一个字符)。匹配的字符串被替换为word_digits。对数据中所有行的所有匹配项进行替换。

相关内容