行が{条件}で始まる場合、187番目の文字の後に変数が挿入されます。

行が{条件}で始まる場合、187番目の文字の後に変数が挿入されます。

10,000行を超える.txtファイルがあります。一部の行1,POS,MGC=はまたはで始まります1,NEG,MGC=。この行の場合は、次のテキストを保持しながら、行の187番目の文字の後に変数を挿入したいと思います。

私が今まで持っているのは

awk 'BEGIN{FS=OFS=""}
{if (substr($0,1,10)~"1,...,MGC=")
$187=$variable} inputfile > outputfile

これはまったく機能しません。

ベストアンサー1

使用sed:

sed "/^1,\(POS\|NEG\),MGC=/ s/./\0$variable/187" file

.ランダムな文字に一致する数値フラグは、187番目の出現を置き換えます187s/.../.../全体として、これは187番目の文字がそれ自体で置き換えられ、その後に値が続きます$variable

行間隔は、/pattern/この操作を「1、POS、MGC =」または「1、NEG、MGC =」で始まる行に制限します。

おすすめ記事