如果原始字符串与特定字符串不匹配,则修改字符串

鲍勃

我有一个包含数百万行的文件,并且仅当字符串为“。”时,才想修改A列中的值。修改将添加"chr:"$2":"$3到字符串的开头。所有其他行将被打印为原始版本。

输入示例:

A B C D E F G H
rs125 2 5433 T TACA A 3 2
chr2:4543 2 4543 I R 8 2
rs123 3 4332 A C 9 3
. 3 7654 I R 8

在上方,第4行以“。”开头。并需要更改为“ chr3:7654”。所有其他行都需要保持不变。

所需的输出:

A B C D E F G H
rs125 2 5433 T TACA A 3 2
chr2:4543 2 4543 I R 8 2
rs123 3 4332 A C 9 3
chr3:7654 3 7654 I R 8 2

到目前为止,我的代码仍然有效,但是即使“ rs ...”应保持不变,也可以将所有名称更改为以“ chr ...”开头。

awk '($1 ~ /^./) {$1 = "chr:"$2":"$3}1' filename > newfilename

这可能是一个非常简单的解决方案,但是却引起了很大的问题。谢谢!

cuonglm

您的问题是正则表达式。/^./将与行首的任何有效字符匹配。您必须先转义.才能从字面上进行匹配:

awk '$1 ~ /^\./ {$1 = "chr:"$2":"$3};1' filename > newfilename

但是最好只检查字符串是否相等,而不要进行正则表达式检查:

awk '$1 == "." {$1 = "chr:"$2":"$3};1' filename > newfilename

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

加密字符串以匹配原始字符串的长度

来自分类Dev

匹配字符串

来自分类Dev

匹配字符串

来自分类Dev

Python - 如果字符串与字符串不匹配,则仅打印一次

来自分类Dev

如果n + 2行包含特定字符串,如何替换匹配的字符串

来自分类Dev

jQuery / JS:如果字符串与时间戳或特定模式匹配,则动态替换字符串 (##:##:##)

来自分类Dev

匹配不包含特定模式的特定字符串

来自分类Dev

如果字符串不匹配,.split()返回什么?

来自分类Dev

如果grep不匹配,则打印输入的搜索字符串

来自分类Dev

如果grep不匹配,则打印输入的搜索字符串

来自分类Dev

RandomAccessFile 修改特定行的字符串

来自分类Dev

如果条件匹配,则粘贴字符串

来自分类Dev

\ Z与字符串末尾不匹配

来自分类Dev

C字符串-相同,不匹配?

来自分类Dev

Grep与ASCII字符串不匹配

来自分类Dev

字符串开头的点不匹配

来自分类Dev

如何打印不匹配的字符串

来自分类Dev

字符串包含不匹配

来自分类Dev

文件的字符串不匹配

来自分类Dev

不匹配字符串的内容

来自分类Dev

即使相同的字符串也不匹配

来自分类Dev

JBuilder原始字符串

来自分类Dev

JBuilder原始字符串

来自分类Dev

获取与特定结尾字符串不匹配的列名

来自分类Dev

查找与特定模式不匹配的替换字符串

来自分类Dev

如果特定的正则表达式匹配,则修改字符串

来自分类Dev

修改JSON字符串

来自分类Dev

修改JSON字符串

来自分类Dev

如果字符串列表具有特定的字符串c#尝试匹配,则匹配。