0

vi や nano などのエディタを使用せずに、構成ファイルを UnixCommandline に置き換えようとしています。

例は次のとおりです。

ServerAdmin mail@example.com

で始まる最初またはすべての行を見つけて、次のようServerAdminに置き換えたい:

ServerAdmin secret@secret.com

このようなことをするコマンドはありますか?CygWinでも利用できる標準のUNIXツールで可能です。

4

3 に答える 3

5
sed -i 's/^ServerAdmin .*$/ServerAdmin secret@secret.com/' in-filename
于 2013-03-02T12:10:20.957 に答える
2

これまでの答えはすべて正しいですが、perlワンライナーを使用してこれを行うこともできます

perl -p -i -e 's/ServerAdmin/ServerAdmin secret@secret.com/g' your_file_name
于 2013-03-09T20:17:40.803 に答える
1

awk次のトランスクリプトに従って、これを行うために使用できます。

pax> echo 'xyzzy plugh
ServerAdmin mail@example.com
twisty passages' | awk '
    /^ServerAdmin /{$0 = "ServerAdmin secret@secret.com"}{print}'

xyzzy plugh
ServerAdmin secret@secret.com
twisty passages

つまり、そのawkコマンドを介してファイルをパイプします。で始まる行を検索し"ServerAdmin<space>"、印刷する前にそれらの行を変更します。パターンに一致しない行はすべてそのまま印刷されます。

明らかに、それは指定された単純なケース用です。入力フォーマットがより複雑であることが判明した場合は、それを調整する必要があるかもしれませんが、awkそれでもタスクをこなす必要があります。

また、出力を標準出力ではなく新しいファイルにキャプチャする場合は、次を使用してください。

awk 'above awk command goes here' currentFile >newFile
于 2013-03-02T12:10:12.150 に答える