カスタム正規表現区切り文字を使用してパターンを含む行番号を検索する

カスタム正規表現区切り文字を使用してパターンを含む行番号を検索する

のようにはいパターンを含む行番号を取得しようとしています。私のパターンにはスラッシュが含まれているので、カスタム区切り文字を追加したいと思います。

この簡単なアプローチが効果的です。

sed -n '/file/=' temp.txt

区切り文字を使用した文字列の置換も可能です。

sed 's|file|gile|' temp.txt

ただし、最初の例で区切り文字を追加しようとすると、次のようになりません。

sed -n '|file /etc|=' temp.txt

私はスラッシュを避けることができることを知っていますが、カスタム区切り文字を追加したいと思います。私のコマンドを修正する方法を知っていますか?

ベストアンサー1

スティーブンあなたのため解決策sed

sed -n  '\|file /etc|=' file 

他のツールを使用したい場合は、この方法も可能です。

grep -n 'file /etc' file

行番号のみを取得するには、行自体も印刷します。

grep -n 'file /etc' file | cut -d: -f 1

または、次のものを使用できますperl

perl -lne 'm|file /etc| && print $.' file 

またはawk:

awk '$0 ~ "file /etc" {print NR}'

おすすめ記事