問題タブ [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.
regex - プログラム内で -pi を模倣する実際の Perl コードは何ですか?
これは、Perl スクリプト自体から perl を実行する冗長なようです。
-pi を模倣する実際の Perl コードは何ですか? Perl の sed のように機能するものを、できる限りシンプルにしたいだけです。
Todd Gardner のサイトに基づくと、基本的にすべてのファイルを読み書きし、すべての行に正規表現を適用しようとしているようです。この解決策は、私のような初心者の Perl ユーザーにとっては少し複雑だったので、以下を使用して単純化しました。
2つのオープンを使用すると何か問題がありますか? これは避けるべきですか、それとも単純な解決策で問題ありませんか?
システムの sed コマンドの方がはるかにシンプルでクリーンであることは認めざるを得ません。
bash - テキスト ファイルから区切られたファイル名のリストを取得する
私は Bash にまったく慣れていないので、これはばかげているように聞こえるかもしれません。テキスト ファイルからいくつかのファイル名のリストを取得しようとしています。sed と awk でこれを実行しようとしましたが、私の限られた知識では動作しませんでした。
これはサンプル ファイルの内容です。
このサンプルから取得したいのは、次の内容を含む新しいテキスト ファイルです。
/Volumes/Secondary500/Temp/Untitled-2_Layer 1 copy 2.pdf
/Volumes/Secondary500/Temp/Untitled-2_Layer 1 copy.pdf
/Volumes/Secondary500/Temp/Untitled-2_Layer 1.pdf
font-size"10">
' ' と ' ' の間で一致するすべてのエントリを出力するように sed に指示することを考えまし</tspan>
たが、... 私が得た最良の結果は、フィールド区切り文字を含む行全体を含むファイルでした。
実行された各ステップを説明できれば、素晴らしいでしょう。
- ファイル名は多かれ少なかれ可能性があります。この3つはほんの一例です。
bash - sed 式の置換文字列で「\」文字をエスケープする
次のようなテキスト行を取得しようとしています
に変更します(bashカラーコードで出力を色付けし、画面に表示しないようにします)
アスタリスクをより目立たせるためにbashカラーコードを使用して色付けします。カラーコードを置換テキストへの参照と見なすため、カラーコードを正しく処理しないことを除いて、ほとんどのことを行う sed コマンドがあります。
私がこれまでに持っているもの:
最初に指定した文字列で実行すると、次の出力が生成されます。
\033 の \0 を元の文字列に置き換えています。置換文字列でバックスラッシュを 2 倍にしても違いはありません。私はまだ同じ出力テキストを取得します。
bashカラーエスケープをsed置換式に挿入するにはどうすればよいですか?
sed - sed: 行の一部を置き換える
行の一部をsedに置き換えるにはどうすればよいですか?
この線
に置き換える必要があります。
値 xxx は異なる場合があり、dbservername と値の間に 2 つのタブがあります。この名前と値のペアは、構成ファイルの多数のペアの 1 つです。
次の後方参照で試しました:
その結果、エラーが発生しました: `s' コマンドの RHS の参照 \1 が無効です。
表現がおかしい?GNU sed を使用します。
unix - UNIXで同様のファイル名を持つ重複ファイル
次の名前の単一のディレクトリに一連のファイルがあります。
これらをコピーするために使用するUNIXコマンド(find、cp、xargs、sed?)
x-> copy-> x、y->copy->yのように
私はファイルを選択する最初のコマンドのfind..部分を持っていますが、そこで立ち往生しています。
編集 明らかに、私はオリジナルとコピーの両方を保持したいので、名前を変更しても私にはうまくいきません。
regex - tinydnsゾーンファイルのTTLを置き換えるためにsed?
私はいくつかのtinydnsゾーンファイル内のTTLの大規模なセットを置き換えるために働いています。TTLが現在何に設定されているかに関係なく、900にしたいと思っています。sedの魔法を探していますが、もうすぐそこにいるようです。
TTLを置き換えるために約50のホスト名があり、ゾーンは散発的に割り当てられています。
ゾーンファイルの行にTTLを含める必要はありません。持っていない場合は、TTLを追加する必要があります。つまり、検索する行は次のようになります。
例えば
そのため、sedコマンドの正規表現を作成するためのサポートが必要です。次のようになります。
寛大なsedの達人はいますか?
regex - 既知のテキストブロックに行を挿入する
テキストの「ブロック」を、ファイルの先頭、改行、またはファイルの終わりの間のすべての行として定義します。
どのテキストもブロックを占めることができます-どの行がそこにあるかは不明です。2番目のブロックに改行を挿入するシェルスクリプトを作成しようとしましたが、sedは改行を操作するのが好きではないため、このsedワンライナーをハッキングしました。
これにより、次のようになります。
問題は、バッファの先頭に改行を追加することです(StackOverflowのマークアップでは表示できないため、[newline]とマークされています)別のツールまたは別の正規表現を使用してそれを行う別の方法はありますか?
regex - sedでの貪欲でない(消極的な)正規表現マッチング?
sed を使用して URL の行をクリーンアップし、ドメインだけを抽出しようとしています。
だからから:
私が欲しい:
(末尾のスラッシュの有無に関係なく)
私が試してみました:
そして(貪欲でない量指定子をエスケープする)
しかし、貪欲でない量指定子 ( ) を機能させることができないように見える?
ため、常に文字列全体に一致することになります。
shell - ファイル内の特定の位置に行を挿入する簡単な方法
たとえば、末尾から最初の行の前に、テキスト ファイルに文字列を挿入する必要があります。
それを実行する簡単な方法を提案できますか?ありがとう