標準偏差

標準偏差

sed擬似コード:

sed
    "FROM"
        $to = ".*";$
    "TO"
        $to = "'"$new_email_address"'";
    "GLOBAL"
FILE_PATH
  • 改行のみ許可されます。
  • タブのインデントを許可する
  • 単一行分割を使用する必要はありません。
  • 以下のようにコマンドを引用符で囲む必要はありません。sed "/s/X/Y/g" FILE
  • 上記の例のようなデータ構造を使用する方が簡単です"'"$new_email_address"'"。なぜなら、すでに引用符で示されている密で長い行の中にはないからです。また、改行は、変数を含む文字列に対してのみいくつかの新しい文字を使用して実行できます。STRING_WITH_VARIABLEEXPANSION data STRING_WITH_VARIABLEEXPANSION引用符の代わりに拡張( )

一般的な構文よりもアクセスしやすく、秩序整然とするので、このような構文を使用することができて嬉しいです。sedしたがって、タイトルに質問があります。

ベストアンサー1

よりアクセスしやすいものを開発する試みがあることを知っていますsed。しかし、それはまさにあなたが望むものではありません。

標準偏差

直感的なCLIの検索と置換(sed代替)rust

機能が制限されています(sed. 超能力が必要な場合は、その他のsedユーティリティの詳細を学ぶことをお勧めします。)sdFedora 34(for dnf install sd)とUbuntu 21.04(Ubuntuを使用してCargoと依存関係をインストールしました:)でテストしましたbuild-essential


改行をカンマに置き換えます。

sd: sd '\n' ',' input.txt
sed: sed -i ':a;N;$!ba;s/\n/,/g' input.txt

sdこの場合、構文はと同じですtr

tr '\n' ',' < input.txt

その場所でファイルを変更します。

sd: sd before after file.txt
sd: sd 'before this' 'after that' file.txt
sed -i 's/before/after/g' file.txt

スラッシュを含む文字列からコンテンツを抽出します。

# Strings between () are groups.

echo "sample with /path/" | sd '.*(/.*/)' '$1'
/path/

echo "sample with /path/" | sd '(.*)/.*/' '$1'
sample with

# Capture two groups and invert.
echo "sample with /path/" | sd '(.*)(/.*/)' '$2$1'
/path/sample with

echo 'lots((([]))) of special chars' | sd -s '((([])))' ''
lots of special chars
    -s, --string-mode
            Treat expressions as non-regex strings
        

複数行の交換:

sd 'test\nmultiline' 'this\ntest'  input.txt

別のオプション:

-p, --preview
  Output result into stdout and do not modify files

より簡単な試みがありますfindrustまた開発中です)。 FD

おすすめ記事