例のように、パターンを含む行番号を取得しようとしています。パターンにスラッシュが含まれているため、カスタム区切り文字を追加したいと思いました。
この単純なものは機能します:
sed -n '/file/=' temp.txt
文字列置換に区切り文字を使用することも機能します:
sed 's|file|gile|' temp.txt
ただし、最初の例に区切り文字を追加したい場合は、次のようにはなりません。
sed -n '|file /etc|=' temp.txt
スラッシュをエスケープできることはわかっていますが、カスタム区切り文字を追加したいと思います。コマンドを修正する方法はありますか?
承認された回答:
Stéphaneはあなたに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}'
シェルで`command`と$(command)を使用してコマンド出力を取得することの違いは何ですか?
指定されたレイヤーでのみ動作するようにOpenboxでToggleshowdesktopを構成しますか?