我有一个如下所示的文件:
A3 124.406526 8.281803
A3' 125.000684 8.389677
K4 123.072842 8.166373
K4' 120.092553 8.269080
我想在第一列中添加字符,文件应如下所示:
A3N-H 124.406526 8.281803
A3'N-H 125.000684 8.389677
K4N-H 123.072842 8.166373
K4'N-H 120.092553 8.269080
我怎样才能通过 awk 或 sed 以简单的方式做到这一点?
答案1
和sed
:
sed -E 's/^([^[:blank:]]+)/\1N-H/' file.txt
([^[:blank:]]+)
匹配第一个字段 (^
),并仅放入捕获的组中在替换中,
N-H
附加到第一个字段,\1N-H
和awk
:
awk '{sub("$", "N-H", $1)}; 1' file.txt
sub("$", "N-H", $1)
将第一个字段 ( ) 的末尾替换$
为N-H
,这必然意味着就地追加操作1
只是一个占位符,true
以便打印(修改的)记录
例子:
% cat file.txt
A3 124.406526 8.281803
A3' 125.000684 8.389677
K4 123.072842 8.166373
K4' 120.092553 8.269080
% sed -E 's/^([^[:blank:]]+)/\1N-H/' file.txt
A3N-H 124.406526 8.281803
A3'N-H 125.000684 8.389677
K4N-H 123.072842 8.166373
K4'N-H 120.092553 8.269080
% awk '{sub("$", "N-H", $1)}; 1' file.txt
A3N-H 124.406526 8.281803
A3'N-H 125.000684 8.389677
K4N-H 123.072842 8.166373
K4'N-H 120.092553 8.269080
答案2
简而言之,一句话:
awk '$1=$1"N-H"'