最新記事

sed は yaml コードブロックを空のコードに置き換えます。
sed

sed は yaml コードブロックを空のコードに置き換えます。

sedを使用してyamlファイルからコードスニペットを削除しようとしています。これまで私が持っているのは以下のコードですが、うまくいきません。 sed -i 's/- node-service\/velocity_log_deployment((.|\n)*)//' config.yml 削除するコードは次のとおりです。 - terraform/init_and_plan: name: terraform_plan context: - phdv-docker-hub-creds - phdv-aws terraform_version: <> working_directory: ~/project/infra persist_to_workspace_filepath_prefix: infra/ requires: - package # remove start - node-service/velocity_log_deployment: name: velocity_log_deployment repository_url: https://github.com/pizzahutuk/lambda-contentful-menu-sync requires: - terraform_apply context: - phdv-docker-hub-creds - phdv-aws # remove end - terraform/init_and_apply: name: terraform_apply context: - phdv-docker-hub-creds - phdv-aws terraform_version: <> working_directory: ~/project/infra requires: - terraform_plan filters: branches: only: main sed置換後の結果: - terraform/init_and_plan: name: terraform_plan context: - phdv-docker-hub-creds - phdv-aws terraform_version: <> working_directory: ~/project/infra persist_to_workspace_filepath_prefix: infra/ requires: - package - terraform/init_and_apply: name: terraform_apply context: - phdv-docker-hub-creds - phdv-aws terraform_version: <> working_directory: ~/project/infra requires: - terraform_plan filters: branches: only: main

Admin

text+tsvファイルからjsonを生成する
bash
sed
jq

text+tsvファイルからjsonを生成する

私は初心者で、JSonを使ったことがありません。一部のjsonテキストファイルのみを解析しました。 カテゴリ数は異なる場合があります。 Category1 1111|2222|3333|444|5555 6666|7777|8888|9999|1111 0000|1111|22222|3333|4444 Category2 2222|3333||5555 2222|3333|4444||5555 Category3 AAAA|||BBBB CCCC|DDDD|EEEE|FFFF|GGGG 予想される JSON: カテゴリ ---> 配列 ---> tsv ごとに --> Make Key:Value(Year|Title|Name|Format|Base) tsv の値が上記のいずれかと一致しない場合は、null を追加します。 Jsonは次のようにする必要があります。これは、各カテゴリーを数値的に索引付けし、カテゴリーを再索引付けしてtsv配列を取得できることです。 Json構造は次のようになります。たとえば、次のようになります。 1) I could get list of category using jq cat file | jq Output: Category1 Category2 Category3 2) Index that Category jq '.| Category[0]' Output: Category1 1111|2222|3333|444|5555 6666|7777|8888|9999|1111 0000|1111|22222|3333|4444 3) Index each tsv jq Category1 | jq '.[0]' ---> { "Year": "1111" "Title": "2222" "Name": "3333" "Format": "4444" "Base": "5555" } jq'.|カテゴリ[0]

Admin

連続したパターンを一致させて他のパターンの後に挿入する方法
text-processing
awk
sed

連続したパターンを一致させて他のパターンの後に挿入する方法

2行のファイルがあります。 1, output /test here 2, output /test here 私はこれを次のように変更したいと思います: 1, output /test 1 here 2, output /test 2 here 前の文字列を,この文字列の末尾にコピーします/test。 awkまたはを使用してこれをどのように実行できますかsed?

Admin

同じ数字を持つすべての行で数字を増やす方法
awk
sed

同じ数字を持つすべての行で数字を増やす方法

サンプルファイルは次のとおりです。 test test test test test TEST: 15000 abcabc TEST: 15000 testtest test TEST: 15000 test test test 14000 test test test TEST: 15000 TEST: 15000 15000が表示されている場合は、テキストが何であれ必要があります。各行に1を追加するだけです。 test test test test test TEST: 15001 abcabc TEST: 15002 testtest test TEST: 15003 test test test 14000 test test test TEST: 15004 TEST: 15005

Admin

SEDを使用して一致の後に行を追加すると、ファイル全体のみがエコーされます。
linux
sed

SEDを使用して一致の後に行を追加すると、ファイル全体のみがエコーされます。

この質問にはすでに答えがあります。: sedコマンドを使用してファイルを永久に変更するには? (回答3個) 閉鎖3年前。 sed見つけたら、以下を追加してbashファイルで試しました。AddDefaultCharset UTF-8 MIMEMagicFile conf/magic 作業を簡素化するために、正しい結果が得られるまで最初の行を追加することに集中していましたが、これまではそうしました。 sed '/AddDefaultCharset UTF-8/a ' /home/testfile.ini しかし、実行しようとすると、ファイル全体がエコーされます。どこで間違っていますか?

Admin

パターンに基づく検索後の数と行の印刷
text-processing
awk
sed
scripting
uniq

パターンに基づく検索後の数と行の印刷

複数のログファイルにこのような行があります。 ファイル1: Line 203:Caused by :arithmatic overflow exception Line 204:at com.abc.java ファイル2: Line 105:Caused by : ???String out of bound exception Line 206 :at com.def.java 上記のパターンを含むファイルがたくさんあります。これらすべてのファイルで203行と204行の組み合わせの発生回数を計算する方法

Admin

sedが1行ではなく2行を削除しましたが、なぜですか? [コピー]
bash
text-processing
sed
variable

sedが1行ではなく2行を削除しましたが、なぜですか? [コピー]

この質問にはすでに答えがあります。: シェル: コマンド置換で末尾の改行 ('\n') を保持します。 (回答4個) Bash オプションを使用すると、コマンド置換で末尾の改行が維持されます。 (回答3個) 閉鎖3年前。 このテキストファイル()から行を削除しようとしていますfoo.txt。 cat mouse animals: 2 最後から2行を削除したいです。 ‎ animals: 2 だから私はついに次の結論に達しました。 cat mouse ただし、これを使用すると、variable="$(sed '$d' foo.txt)"1つだけ指定しましたが、両方の行が削除されたように見えます$d。これにより、私が望む結果を得ることができますが、なぜこれが起こるのか疑問に思うことはできません。出力を変数に保存したくない場合は、次のような出力が表示されます。 user$ sed '$d' foo.txt cat mouse user$ 奇妙なことは、を使用するとその行$ sed '$d;$d' foo.txtだけがanimals: 2削除され、その前の改行文字は削除されないことです。 誰でも私のためにこの謎を解くことができますか?ありがとうございます。 参考までに、この例ではBSD sedを使用しました。

Admin

ファイルから行を削除
text-processing
awk
sed

ファイルから行を削除

私のフォルダにはたくさんのファイルがあります。 $ ls -hlS | head total 75M -rw-r--r-- 1 ubuntu ubuntu 511 Aug 3 16:27 NW_009517088.1.lst -rw-r--r-- 1 ubuntu ubuntu 478 Aug 3 16:27 NW_009539008.1.lst -rw-r--r-- 1 ubuntu ubuntu 471 Aug 3 16:27 NW_009386266.1.lst -rw-r--r-- 1 ubuntu ubuntu 471 Aug 3 16:27 NW_009411177.1.lst -rw-r--r-- 1 ubuntu ubuntu 451 Aug 3 16:27 NW_009514912.1.lst 各ファイルの内容は*.lst次のとおりです。 $ cat NW_009514912.1.lst rna-NisyCt036+ cds-YP_358756.1- rna-NisyCt037+ cds-YP_358757.1+ cds-YP_358758.1+ cds-YP_358758.1+ id-NisyCp117-1+ id-NisyCp117-2+ id-LOC104209938-1- rna-XM_009770987.1- rna-XM_009780247.1+ rna-XM_009783083.1+ rna-XM_009784022.1- rna-TRNAN-GUU+ *.lstで始まらない各ファイルの行を削除する方法はrna-XM_?

Admin

フィールド4と5に、コロンで区切られた数字でエンコードされた文字を含む2つのフィールドを追加します。
awk
sed
grep

フィールド4と5に、コロンで区切られた数字でエンコードされた文字を含む2つのフィールドを追加します。

8番目と9番目のフィールド/列を生成し、適切な文字を4列と5列の数字にエンコードしたいと思います。コロンで区切られた6つの数字は次のとおりです。A:T:C:G:N:del 注:列6と7の一部の行が空でした。 NAを挿入してこの問題を解決しました。 awk -F'[[:space:]]' '$5 && !$6{ $6="NA" }1' awk -F'[[:space:]]' '$6 && !$7{ $7="NA" }1' 次に、もう一度タブを使用してファイルを区切ります。sed -e 's/ /\t/g' ファイル.tsv NW_006532398.1 302035 C 0:0:32:0:0:0 42:0:0:0:0:0 KCND2 intergenic_region NW_006532656.1 289636 C 0:0:28:0:0:0 0:28:0:0:0:0 CNTN1 intron_variant NW_006532762.1 6396 C 0:54:0:0:0:0 0:0:53:0:0:0 NA intergenic_region NW_006532762.1 25741 C 0:0:62:0:0:0 0:43:0:0:0:0 NA intergenic_region NW_006532762.1 32304 T 0:60:0:0:0:0 0:0:49:0:0:0 NA intergenic_region NW_006532762.1 179065 G 0:0:0:45:0:0 59:0:0:0:0:0 DOCK4 intron_variant 出力 example.tsv NW_006532398.1 302035 C 0:0:32:0:0:0 42:0:0:0:0:0 KCND2 intergenic_region C A NW_006532656.1 289636 C 0:0:28:0:0:0 0:28:0:0:0:0 CNTN1 intron_variant C T NW_006532762.1 6396 C 0:54:0:0:0:0 0:0:53:0:0:0 NA intergenic_region T C NW_006532762.1 25741 C 0:0:62:0:0:0 0:43:0:0:0:0 NA intergenic_region C T NW_006532762.1 32304 T 0:60:0:0:0:0 0:0:49:0:0:0 NA intergenic_region T C NW_006532762.1 179065 G 0:0:0:45:0:0 59:0:0:0:0:0 DOCK4 intron_variant G A どんな助けでも大変感謝します! !

Admin

時間とファイル名の間の各スペースに「;」(セミコロン)を追加します。
text-processing
sed

時間とファイル名の間の各スペースに「;」(セミコロン)を追加します。

以下はリストです。 07:41 0840228.32P379995.de472.netzwerk.com.br,S=307582,W=311813:2, 04:11 1574312.116821186.der472.netzwerk.com.br,S=301166,W=307582:2, 06:22 1540376.98P379995.der472.netzwerk.com.br,S=311813,W=312391:2, 03:39 8712441.254782468.de472.netzwerk.com.br,S=307387,W=311615:2, 07:35 9841630.971395138.de472.netzwerk.com.br,S=303039,W=303039:2, 01:16 2369857.123688174.de472.netzwerk.com.br,S=298927,W=311615:2, 01:08 1845871.564387663.de472.netzwerk.com.br,S=304067,W=305586:2, 08:07 1236913.325890982.de472.netzwerk.com.br,S=299941,W=304067:2, 05:70 1086215.397447162.de472.netzwerk.com.br,S=306747,W=309789:2, 06:41 9513575.225890982.de472.netzwerk.com.br,S=305586,W=306747:2, 01:70 1965849.125749892.de472.netzwerk.com.br,S=313423,W=309171:2, 09:12 9564136.687415393.de472.netzwerk.com.br,S=309171,W=313423:2, 時間とファイル名の間の各スペースに ";"(セミコロン)を追加して次の結果を生成できますか? 07:41;0840228.32P379995.de472.netzwerk.com.br,S=307582,W=311813:2, 04:11;1574312.116821186.der472.netzwerk.com.br,S=301166,W=307582:2, 06:22;1540376.98P379995.der472.netzwerk.com.br,S=311813,W=312391:2, 03:39;8712441.254782468.de472.netzwerk.com.br,S=307387,W=311615:2, 07:35;9841630.971395138.de472.netzwerk.com.br,S=303039,W=303039:2, 01:16;2369857.123688174.de472.netzwerk.com.br,S=298927,W=311615:2, 01:08;1845871.564387663.de472.netzwerk.com.br,S=304067,W=305586:2, 08:07;1236913.325890982.de472.netzwerk.com.br,S=299941,W=304067:2, 05:70;1086215.397447162.de472.netzwerk.com.br,S=306747,W=309789:2, 06:41;9513575.225890982.de472.netzwerk.com.br,S=305586,W=306747:2, 01:70;1965849.125749892.de472.netzwerk.com.br,S=313423,W=309171:2, 09:12;9564136.687415393.de472.netzwerk.com.br,S=309171,W=313423:2,

Admin

パターンと一致しない行にテキストを追加する
linux
awk
sed
mysql

パターンと一致しない行にテキストを追加する

INSERT INTO `db`.`table` VALUES ( 39741633 49302045 0 44 '{"CustomerName":"S","CustomerMobile":"8","CustomerEmail":"","VersionId":"5","CityId":"2","CampaignId":"1","InquirySourceId":"3","Eagerness":"-1","ApplicationId":"2","BranchId":"3","AssignedDealerId":"2","DMSInqNo":"45"}' NULL 0 '2021-11-09 19:11:50' NULL 1 29 NULL ); INSERT INTO `db`.`table` VALUES ( 39741635 49970365 0 30 '{"CustomerName":"A","CustomerEmail":"[email protected]","CustomerMobile":"9","VersionId":"6","InquirySourceId":"1","Eagerness":"-1","IsCorporate":"z","CampaignId":"8","BranchId":"3","ApplicationId":"1","Location":{"City":{"CityId":"1"},"Area":{"AreaId":"4"}},"CouponCode":null,"CwOfferId":"0","AssignedDealerId":"0","PinCode":""}' NULL 0 '2021-11-09 19:11:51' NULL 1 29 NULL ); binlogからこれらの挿入文を抽出しました。まったくそう見えません。いくつか変更しましたが、まだ輻輳状態です。これを実際の挿入ステートメントに変換する必要があります。すべての挿入ステートメントについて、2行目(INSERT INTO db. VALUES())の後のすべての行の末尾にカンマを追加する必要があります。tableこれは、11行目までの2行の後にカンマを追加してから、INSERT INTOの後に再起動して繰り返すことを意味します。 Googleでこれを見つけました。 sed '/INSERT/{n;n;n;n;n;s/$/,/}' teststring.txt-->挿入後、5行目にカンマが追加されます。問題は、6行目をもう一度実行すると sed '/INSERT/{n;n;n;n;n;n;s/$/,/}' teststring.txt、最初のSEDコマンドによって配置された古いコンマを置き換えます。 ファイルの外観は次のとおりです。 INSERT INTO `db`.`table` VALUES ( 39741633, 49302045, 0, 44, '{"CustomerName":"S","CustomerMobile":"8","CustomerEmail":"","VersionId":"5","CityId":"2","CampaignId":"1","InquirySourceId":"3","Eagerness":"-1","ApplicationId":"2","BranchId":"3","AssignedDealerId":"2","DMSInqNo":"45"}', NULL, 0, '2021-11-09 19:11:50', NULL, 1, 29, NULL ); INSERT INTO `db`.`table` VALUES ( 39741635, 49970365, 0, 30, '{"CustomerName":"A","CustomerEmail":"[email protected]","CustomerMobile":"9","VersionId":"6","InquirySourceId":"1","Eagerness":"-1","IsCorporate":"z","CampaignId":"8","BranchId":"3","ApplicationId":"1","Location":{"City":{"CityId":"1"},"Area":{"AreaId":"4"}},"CouponCode":null,"CwOfferId":"0","AssignedDealerId":"0","PinCode":""}', NULL, 0, '2021-11-09 19:11:51', NULL, 1, 29, NULL ); この目標をどのように達成できますか?

Admin