問題タブ [sed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
513 参照

regex - awkまたはsed:[このテキスト]を取得するための最良の方法

ログファイルからさまざまな情報を解析しようとしています。ログファイルの一部は角かっこで囲まれています。例えば:

sed、awk、またはその他のUNIXユーティリティを使用して、これらの行から「someuserid」を取得するためのエレガントな方法は何ですか?

0 投票する
3 に答える
12656 参照

shell - シェルスクリプトでsedで変数を使用する

aegisのChange-Set属性を編集するためのシェルスクリプトを書いています。私が使用しているコマンドは次のとおりです。

これにより、変更を実行するためのviエディターが開きます。検索して置き換えたい:

\ "test \" / g

スクリプトを入力せずに、スクリプトを介してこれらをオープンviインスタンスに直接渡すことはできますか?編集後、ドキュメント(:wq)を保存したい。

PSファイルはコマンド実行時に作成される一時ファイルなので、元のパスがわかりません

編集:この場合、sedを使用できます:

\ "test \" \; / g '

解決策(不正なハック??)は、aegis(setenv VISUAL cat)からの出力を「cat」し、上記のコマンドで出力ストリームを変更して一時ファイルに保存し、次を使用することです。

EDIT2:私はほとんどそれを機能させることができました。しかし、私が使用する方法に問題がありますsed

スクリプトに次の行があります。

ただし、$ DESC変数はその値に評価されず、出力は次のように与えられます。

brief_description = "$ {DESC}";

実際の値に評価されるようにDESCをsedに渡すにはどうすればよいですか?

EDIT3:

使用する

働いた。通常の区切り文字(/)を%に置き換え、環境変数を二重引用符で囲みます。

0 投票する
3 に答える
6793 参照

regex - Sed: 置換グループの大文字と小文字を変更

sed Unixコマンドを使用して、一致するグループの大文字と小文字を小文字から大文字に変更するにはどうすればよいですか?

ありがとうマーティン

0 投票する
2 に答える
1592 参照

regex - sed の正規表現でのグロビングとグループ化の問題

次のコードを実行します

ファイルの失敗は

上記のコマンドは私に与えます

「testfailer」を与えるはずですが。

2 番目と 1 番目のグロブ\2\1は、単語「er」の先頭にある必要があります。これは、問題が検索部分の正規表現にある可能性があることを示唆しています。しかし、それらは私にとって正しいようです。

コードに間違いはありませんか?

0 投票する
13 に答える
73036 参照

windows - WindowsバッチファイルでECHOされた文字列から引用符を削除するにはどうすればよいですか?

作成中の Windows バッチ ファイルがありますが、大きな複雑な文字列を ECHO する必要があるため、両端に二重引用符を付ける必要があります。問題は、引用符を書き込んでいるファイルにも引用符がエコーされていることです。そのような文字列をどのようにエコーし、引用符を取り除きますか?

アップデート:

私はこれに取り組むために過去 2 日間を費やし、最終的に何かを一緒にまとめることができました。リチャードの答えは引用符を取り除くのに役立ちましたが、サブルーチンに ECHO を入れて文字列を直接出力しても、Windows は文字列内の文字にハングアップしました。尋ねられた質問に答えるので、リチャードの答えを受け入れます。

最終的に Greg の sed ソリューションを使用することになりましたが、sed/windows のバグ/機能のために変更する必要がありました (ドキュメントがないことは役に立ちませんでした)。Windows で sed を使用するには、いくつかの注意事項があります。単一引用符の代わりに二重引用符を使用する必要があります。文字列内の二重引用符を直接エスケープすることはできません。文字列を終了引用符で囲み、^ を使用してエスケープする必要があります (したがって ^" ) 次に、次のセクションの beqin 引用. また、誰かが、入力を sed にパイプすると、パイプが文字列に含まれるというバグがあることを指摘しました (私の最終的な解決策では、私はちょうど見つけたので、これを確認することはできませんでした)文字列の途中にすべての引用符を付けず、すべての引用符を削除する方法では、終了引用符を単独で削除することはできませんでした. ) 助けてくれてありがとう.

0 投票する
4 に答える
761 参照

text - 単一の sed コマンドを再利用可能な Textmate コマンドに変換する

私は7行のテキストを持っています:

ここで、各行の最後に文字を追加して、次のようにします。

「sed」コマンドを使用して、Textmate の「Filter through command」を使用して sed を介して選択を実行できることがわかりました。

ここで、1 つの疑問が残ります。これを、何らかの方法で入力を受け取る Textmate コマンドに変換するにはどうすればよいでしょうか (どのテキストを追加すればよいかがわかります)。

(これを行う私の試みは失敗したことが証明されています)

0 投票する
5 に答える
421 参照

perl - Perl でファイルのレコードを照合して要約するにはどうすればよいですか?

次の形式のテキスト ファイルがあります。

テキスト ファイルを処理し、次のように報告するスクリプトが必要です。

  • Acct の列 CUSTOMER の「UPDATE」が見つかりました: 211B1、211B2、211B3、211B4、211B5
  • 列 CUSTOMER の "DELETE" が Acct で見つかった: 5675FR、6470GI

簡単な解決策をスクリプト化することはできますが、これは少し複雑に思えます。支援やガイダンスをいただければ幸いです。

0 投票する
6 に答える
2160 参照

algorithm - sed の最適化 (小さなデータセットに基づく大きなファイルの変更)

非常に大きなプレーン テキスト ファイル (10 ギガバイト以上、何を大容量と呼ぶべきかによる) を非常に長い行で処理する必要があります。

私の最近のタスクには、別のファイルのデータに基づいた行の編集が含まれます。

データ ファイル (変更する必要があります) には 1500000 行が含まれており、各行の長さはたとえば 800 文字です。各行は一意であり、1 つの ID 番号のみが含まれます。各 ID 番号は一意です)。

モディファイヤ ファイルは、たとえば 1800 行の長さで、ID 番号と、データ ファイルで変更する必要がある金額と日付が含まれています。

モディファイヤ ファイルを (Vim regex で) sed に変換しましたが、非常に非効率的です。

データ ファイルに次のような行があるとします。

そして、300文字の部分のデータを変更する必要があります。

モディファイヤ ファイルに基づいて、次のような sed 行を作成します。

だから私はこのような1800行を持っています。

しかし、非常に高速なサーバーでも、

すべてのパターン x すべての行を読み取る必要があるため、非常に低速です。

より良い方法はありませんか?

注:私はプログラマーではなく、(学校で) アルゴリズムについて学んだことがありません。サーバー上で awk、sed、古いバージョンの perl を使用できます。

0 投票する
3 に答える
5086 参照

linux - テキストを引数に置き換えるためにsedを取得する

わかりました、これは簡単な質問ですが、この sed コマンドを機能させることができないようです。テキスト ファイルを取得し、その一部をプレースホルダー テキストから学習コードに置き換えようとしています。それを置き換える研究コードは、スクリプトが最初に実行されるときに、引数を使用してスクリプトに渡されます。問題は、プレースホルダー テキストを変数 $study に置き換えようとすると、文字通り「$study」に置き換えられることです。

現在、私の引数は次のように設定されています。

調査のエクスポート=$1

輸出タグ=$2

エクスポートモード=$3

export select=$4

私の sed コマンドは次のようになります。

sed -i.backup -e 's/thisisthestudycodereplacethiswiththestudycode/$study/' freq.spx

リテラルの $study を見ないように sed を取得する簡単な方法はありますか、それともこの時点で別の方法で行う方がよいでしょうか?

0 投票する
7 に答える
12700 参照

regex - sedを使用して、一致する行、その上と下の行を削除するにはどうすればよいですか?

ファイル内で次のシーケンスが複数回発生しています。

に一致する正規表現がありxxxxます。yyyy一致するものがあるときはいつでも、その行、前の行 (eg ) とその後の行(eg )を削除したいと考えていzzzzます。sed を使用してこれを行うにはどうすればよいですか?