の端からgrepのための/ etc/passwdファイル正規表現での行の行
私が最初に行($)の端からgrep検索したい「:」行の末尾から。例えば
、\ JOHNDOE N:X:39:39:ジョン・ドウ:は/ var/libに/カンナ:/ sbinに/ nologinに
私は "/ sbinに/ nologinに"をgrep検索したい
私のgrepコマンドに使用する正当な正規表現は何ですか?
の端からgrepのための/ etc/passwdファイル正規表現での行の行
私が最初に行($)の端からgrep検索したい「:」行の末尾から。例えば
、\ JOHNDOE N:X:39:39:ジョン・ドウ:は/ var/libに/カンナ:/ sbinに/ nologinに
私は "/ sbinに/ nologinに"をgrep検索したい
私のgrepコマンドに使用する正当な正規表現は何ですか?
使用、その後、あまりにも選択されているコロンを気にしない場合:
grep -o -e ':[^:]*$' /etc/passwd
他のどのコロンして、行の終わりとのみ一致するものを印刷しないでコロンを選択します。
コロンが不要で、PCREが有効になっているgrep
がある場合は、Regex lookahead for 'not followed by' in grep
?を参照してください。ルックアヘッドの代わりにルック・バックを行うためにそれを適応させる必要があります。それだけです。
あなたは-o
とgrep
を持っていない場合は、(コロンを省略)の代わりにsed
を使用します。
sed -n -e '/.*:\([^:]*\)$/ s//\1/p' /etc/passwd
これはおそらく、ほとんどのポータブルソリューションです。
(MacOSのシエラ、およびMac OS X上で、/etc/passwd
ファイルが#
で始まる上部のコメント行を持っている。彼らはそれらの任意のコロンを持っていないので、sed
コマンドは、これらの行を印刷しません。これはきれいに動作します。のMacだけでなく、LinuxやUnixの他の変異体に、したがって、それはsed
のない高度な(別名非ポータブル)機能を使用していません)を使用cut
について、これはもっとストレート、このためであるどのように
:。
echo 'johndoe:x:39:39:John Doe:/var/lib/canna:/sbin/nologin' | cut -d ':' -f 7