sed または awk を使用して、パターンの後ろの内容をすべて削除します。

sed または awk を使用して、パターンの後ろの内容をすべて削除します。

私はそれについて多くの質問があることを知っていますが、それを動作させることはできません。

グループ(例:)を使用または削除したいですroot。だから後ですべて削除する必要があります。/etc/groupsedawkroot:*:0:

私は以下を使用してそれを削除しようとしました。

cat /etc/group | awk '!p;/^root:*:0:/{p=1}'

そして

cat /etc/group | sed 's/root\:\*\:0\:.*//'

ただし、sedroot全体を削除してください。

私は何が間違っていましたか?

ベストアンサー1

sedでアドレスを使用して、作業する行を制限できます。

 sed '/^root:/s/:[^:]*$/:/' /etc/group

で始まる行の場合、行root:の最後の文字以降のすべての文字が削除されます:

/etc/groupレコードには:4つの区切り列しかないため、最後の列とその中のすべてのグループメンバーが削除されます。)

おすすめ記事