ed(1) はファイルの各行に ^M を追加します。

ed(1) はファイルの各行に ^M を追加します。

WordPressのインストールを自動化しています。 wp-config.phpファイルを編集するときは、put your unique phrase here含まれている8行をWordPress.orgサーバーで作成されたSaltに置き換える必要があります。

だから私は最高の答えを使用しました。このペダルこのスクリプトを実行するように求められます。

#!/bin/sh

SALT=$(curl -L https://api.wordpress.org/secret-key/1.1/salt/)
STRING='put your unique phrase here'
printf '%s\n' "g/$STRING/d" a "$SALT" . w | ed -s wp-config.php

これは必要な行を適切なソルトに置き換えるので、うまく機能します。ただし、^M新しく追加された文字列を除いて、wp-config.phpのすべての文字列の末尾に1を追加します。

これで、次のようになります。

 */^M
^M
define('AUTH_KEY',         '|%)Y1>vzXGRbE?`FFZX3Mq|ur?tN/,R&%@)juSc?f@bNPYm~P=aF&Fl?!HGF4V}a');
define('NONCE_SALT',       '6;KHO6=[<daU7t|]dA`Ta-h7.2B@3Sa`daIinz/6!O=GQWE(@r(<3L+X,/:[du%Q');
/**
**/^M
^M
/**^M
 * WordPress Database Table prefix.^M

私は ed(1) についてよく分からないので、どんな助けでもいただければ幸いです。

ベストアンサー1

質問で述べた一連のコマンドは、^Mテキストファイルにキャリッジリターンを追加しません。

ただし、すべてのDOSテキストファイルなど、ファイルの各行の末尾にすでにキャリッジリターンがある場合、ファイルにDOS以外の行が追加されます。つまり、編集後にテキストファイルにいくつかの行があることを意味します。 Unix テキスト行とその一部は DOS テキスト行です。ファイルを表示するためにどのエディタを使用しても、ファイルをどのように処理するかを把握し、ファイルをUnixテキストファイルとして表示するか、キャリッジリターンを次のように表示するかを決定する必要があります^Mvim例:これを行うことができます)。

dos2unix解決策はファイルから実行することですwp-config.php。混合型の行を処理し、ファイル全体をUnixテキストファイルに変換できます。

また、edスクリプトを編集するときれいにput your unique phrase here文書の文字列を置き換えます。文書を見ると

000
AAA
put your unique phrase here
BBB
XXX

...コマンドシーケンスが生成されます。

000
AAA
BBB
define('AUTH_KEY',...
...
XXX

BBB(前行と後行の位置を参照してください)上記のテキストの前に行が追加されるようにこの問題を解決するには、defineコマンドをcommandに変更します。BBBai現在の行の前に挿入最後に追加する代わりに(「現在の行」は、コマンドが変更した行の後にBBB来るため、その行になります)。g//d

おすすめ記事