次の内容のファイルがあります。
domproxy1.dom.company.com Centos CentOS 6.5 production S5520UR 7 days ago Edit
domproxy10.dom.company.com Centos CentOS 6.5 production S5520UR 7 days ago Edit
domproxy11.dom.company.com Centos CentOS 6.5 production X8DTU 7 days ago Edit
domproxy15.dom.company.com Centos CentOS 6.6 production X8DTU 8 days ago Edit
domproxy2.dom.company.com Centos CentOS 6.5 production S5520UR 7 days ago Edit
domproxy3.dom.company.com Centos CentOS 6.5 production S5520UR 7 days ago Edit
domproxy4.dom.company.com Centos CentOS 6.5 production S5520UR 7 days ago Edit
domproxy5.dom.company.com Centos CentOS 6.5 production S5520UR 7 days ago Edit
domproxy6.dom.company.com Centos CentOS 6.5 production S5520UR 7 days ago Edit
domproxy9.dom.company.com Centos CentOS 6.5 production S5520UR 7 days ago Edit
domproxy29.dom.company.com Centos CentOS 6.6 production S2600GZ about 1 month ago Edit
orgcmsui03.nj.company.com Centos CentOS 6.6 production Virtual Mac... 6 days ago Edit
domftp01.dom.company.com Centos CentOS 6.4 production ProLiant DL... 40 minutes ago Edit
各行の終わりを置き換えたい」 (.com *)
〜と (.com)
、つまり、各行のホスト名以降をすべて削除することを意味します。
内部 vim
、私は次のことを試みました。
:%s/.com $/.com/g
:%s/.com*$/.com/g
:%s/.com .*/.com/g
私はこれが私がやっていることを知っている限り:
:%s/ - search on all the file
.com .*/ - the search pattern
.com/ - the replace pattern
/g - global
しかし、無駄に、私は何を間違っていますか?
回答:
回答№1は2:%s/[.]com.*/.com
これはまさにあなたが必要とすることをします。
%s
ファイル全体を検索
/[.]com.*
検索 .com
そして、行末まで続くもの
/.com
検索されたパターンを .com
あなたは使用する必要はありません /g
最後に、発生するのは1つだけなので .com
各行に。
したくない場合は、以下のコマンドを使用します .company.com
に置き換えられる .com
:%s/[.]com>.*/.com
回答№2については2
好き :normal
これらの種類のタスク:
:%norm f D
ただし、次のいずれかを使用して、もう少し* nix-yを実行できます。 awk
または cut
でフィルタリングすることによって :%!
.
:%!cut -f1 -d" "
:%!awk "{print $1}"
:%!awk "$0=$1"
を使用した置換 zs
:
:%s/.comzs.*
詳細については、以下を参照してください。
:h :normal
:h f
:h D
:h :range!
:h /zs
:h magic
回答№3の場合は1
また、 の力 g
:g/[.]com>/normal nelD
または
:g/[.]com/normal nelD
あなたが望むように。
以下のように機能します:
各行で見つける .com
コマンドを実行する nelD
に 正常 モード。
n
次の試合を見つける、 e
単語の最後に移動し、 l
右に移動し、 D
行末まで削除します。
回答№4の場合は1
私はこれを好きです:
:%s/.comzss.*/
一致 dot "com" whitespace
(スペースやタブなど)、すべてを削除します 後 dot com
.
注意: ドット それ以外の場合はエスケープされます どれか 文字が一致します。