のようにはいパターンを含む行番号を取得しようとしています。私のパターンにはスラッシュが含まれているので、カスタム区切り文字を追加したいと思います。
この簡単なアプローチが効果的です。
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}'