テキストファイルの条件に基づくシェルスクリプトとロボットフレームワークテストケースの作成

テキストファイルの条件に基づくシェルスクリプトとロボットフレームワークテストケースの作成

私はロボットフレームワークテストケースに取り組んでいます。私の要件は、以下のファイルを読み、場所に基づいて値を比較することです。たとえば、

  1. 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

それぞれが^GControl-G文字であると仮定します。つまり、ファイルは\aASCIIベル文字()を使用して区切られ、各行の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 QQ ¥¥ 春夏シーズン 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

おすすめ記事