私はロボットフレームワークテストケースに取り組んでいます。私の要件は、以下のファイルを読み、場所に基づいて値を比較することです。たとえば、
- 3で始まる行。 3はID番号ですが、行全体を選択して位置に応じた値を比較する必要があります。 BRONYXは位置9で始まり、位置44のNEW YORK出力と比較する必要があります。この例では、BRONYXをNEWYORKに変更する必要があります。位置に基づいて文字列を抽出する方法。
3^G^G^G^GBRONX^GNY^G10457^GUSA^G^G^GBRONXはNEW YORKに変更する必要があります。 - 派生都市の例^ G ^ G ^ G ^ GNEW YORK ^ GNY ^ G10457 ^ G10457 ^ G ^ GBRONX郡845600^G-73.898500^G325^GSPU^GZ1^G^G^G^G^G^G ^ G^ニューヨーク-ニューアーク-ジャージー市、NY-NJ-PA首都圏統計地域^G35620^GE020^GZC5X^GMMMMVVVV ^G36005039500
例 2: ID 2 の行を選択します。この例では、位置9のMANHATTANをNew York(位置40)に変更する必要があります。 2^G^G^G^GMANHATTAN^GNY^G^GUSA^G^G^GMANHATTANはNEW YORKに変更する必要があります。 - 派生都市の例^ G ^ G ^ G ^ GNEW YORK ^ GNY ^ G ^ G ^ G ^ GNEWヨーク^G-73.966249^G425^GSPU^GG3^G^G^G^G^G^G^ ^G^G^G^G^G^GMMMMVVM^G
助けてもらえますか?
ベストアンサー1
それぞれが^G
Control-G文字であると仮定します。つまり、ファイルは\a
ASCIIベル文字()を使用して区切られ、各行の5番目のフィールドを15番目のフィールドの値に設定しようとします。
awk -F '\a' 'BEGIN { OFS=FS } { $5 = $15 }; 1' file >newfile
これは、フィールド区切り文字をASCIIベル文字に設定するために使用されます-F '\a'
。次に、出力フィールド区切り文字を同じ文字に設定し、5番目のフィールドを15番目のフィールドの値に更新します。コードを後続すると、変更された1
レコードが出力されます。結果は、newfile
この例で呼び出されたファイルに書き込まれます。
最初のフィールド2
または最初のフィールドで3
始まる行にのみ影響し、次を使用しますか?
awk -F '\a' 'BEGIN { OFS=FS } $1 == 2 || $1 == 3 { $5 = $15 }; 1' file >newfile
結果は、デモ目的でのみマークダウンテーブル形式で指定されます。 4列はe
列、15列はo
列です。
ㅏ | 第二 | 氏 | D | 金利 | F | G | 時間 | 私 | ジェイ | K | 私 | 米 | N | ああ | 血 | キュー | アル字型 | S | ティー | あなた | V | 勝つ | X | ワイ | ジ | ああ | BB | CC | DD | この | FF | gg | ヘヘ | 二つ | ジエジへ | 笑 | 二つ | mm | 優しい | ああ | PP | ¥¥ | 春夏シーズン | TT | よく | ウェイウェイ | WW | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
サム | ニューヨーク | ニューヨーク | 10,457 | アメリカ | ブロンクスはニューヨークに変更する必要があります - 派生都市の例 | ニューヨーク | ニューヨーク | 10,457 | 10,457 | ブロンクス郡 | ブロンクス | ニューヨーク | アメリカ | 40.846… | -73.898… | 325 | SPU | Z1 | ニューヨーク - ニューアーク - ジャージー、ニューヨーク - ニュージャージー - ペンシルベニア州首都圏の統計地域 | 35,620 | E020 | ZC5X | MMMMMVVV | 36,005,039,500 | ||||||||||||||||||||||||
2 | ニューヨーク | ニューヨーク | アメリカ | マンハッタンはニューヨークに変更する必要があります - 派生都市の例 | ニューヨーク | ニューヨーク | ニューヨーク | アメリカ | 40.783… | -73.966… | 第425話 | SPU | G3 | MMMMMVVM |