次のファイルがあります。
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