タグ

sedに関するjiroron666のブックマーク (5)

  • sedコマンドで覚えておきたい使い方12個(+3個) | 俺的備忘録 〜なんかいろいろ〜

    LinuxやUNIXを使う上で、ある程度使えると非常に便利な置換コマンドが、このsedコマンドだ。 今回は、このsedコマンドで覚えておきたい使い方について紹介する。 なお、今回の置換・編集の例として、以下のファイルを用いて説明する。 [root@test-centos7 work]# cat /root/sed_test.conf # line 1 line1=enable # line 2 line2=disable # line 3 line3=enable # line 4 line4=enable 1.基的な使い方 sedコマンドの基的な使い方としては、以下のようにコマンドを実行することでファイル・標準出力の内容で文字列の置換を行う事だ。 なお、条件の最後に「g」を付けないと、"最初に、マッチした箇所のみ"置換するので注意。 ファイルの内容を置換する場合 sed 's/置換前

  • sedで各種コマンドを作ってみよう - Qiita

    はじめに 久々の投稿です。この間初めてシェル芸勉強会に参加しました。 その第27回シェル芸勉強会で sed 祭りがあったので、便乗してコマンド作ってみました。 sedコマンドはあるけど他のコマンド無いよ〜><;って言う謎状態に陥らないとも限らないので必見です。 更に、(きっとおそらく多分)簡単順に出してます。また、解説が雑なところなどは気が向き次第ちょくちょく更新しますのでお待ちいただければなと。 sed のホールドスペースとかパターンスペースとか知らない方へ dotinstall や sedのパターンスペース・ホールドスペースの動作を図で学ぶ - Qiita とかで学習してください。多分紙とペンを用意したほうが頭に入って来やすいと思います。 あとは man sed でもして読書しましょう。(ホールド|パターン)スペース、正規表現について勉強された後の方は man ページがいい教科書になる

    sedで各種コマンドを作ってみよう - Qiita
  • Linuxのgrep(指定文字検索)で該当行の行番号のみ出力する - Qiita

    検索対象ファイルの内容で検索したい文字を含む行の行番号のみを取得する grep -e "検索文字列" -n 検索対象ファイル名 | sed -e 's/:.*//g' ★検索対象ファイルの中から検索文字列を含む行を取得した後、その検索結果をパイプに通し、「行番号:該当行内容」となっている出力結果をsedコマンドを使用し「:」以降の文字列を空白に全置換することにより行番号のみを取得することができる 以下のquerylog.txtの中から「DELETE」を含む行の行番号のみを取得する grep -e "DELETE" -n querylog.txt を実行した時の出力結果。 (8行目と11行目に「DELETE」を含む文字列があるとわかる) 「でも、欲しいのは行番号だけなんだけど(´・ω・`)」ということありませんか?? とりあえず私はありました。( ´_ゝ`)← なので、パイプを利用して行番号

    Linuxのgrep(指定文字検索)で該当行の行番号のみ出力する - Qiita
    jiroron666
    jiroron666 2018/08/30
    sed -nなんて使い方あったのか
  • sed 中級者への道 - Qiita

    区切り文字は何でもよい。 文字を置換するとき、一般的には"/(スラッシュ)"を区切り文字にすることが多い。 sed 's/old/new/' <old_file >new_file ただし、ファイルパスなど"/(スラッシュ)"を含む文字を置換したい場合は、スラッシュを区切り文字にしていると、いちいちエスケープしなくてはならず、読みづらい。 sed 's/\/usr\/local\/bin/\/common\/bin/' <old_file >new_file sedは"s"の次の文字を区切り文字にしてくれるため、以下のように書くことが可能になる。 sed 's_/usr/local/bin_/common/bin_' <old_file >new_file sed 's:/usr/local/bin:/common/bin:' <old_file >new_file "&"でマッチした文字

    sed 中級者への道 - Qiita
    jiroron666
    jiroron666 2018/03/03
    特殊な文字など
  • sedの正規表現で「\w」「\d」「\s」を実現する方法

    sedの正規表現で「\w」「\d」「\s」を実現する方法を紹介します。 1.問題点 sedの正規表現では、Perlなどで使われる英数またはアンダーバーにマッチする「\w」や「\d」、あるいは空白にマッチする「\s」などのメタ文字を使うことができません。 たとえば次のスクリプトで変数dataから「123」という値を取得しようとしても、期待通りの結果になりません。 #!/bin/sh data="abc123def" result=`echo "$data" | sed -e "s/^.*\(\d\{3\}\).*$/\1/"` echo $result ということで、メタ文字と同じ効果を得られる方法を紹介します。 2.sedの正規表現で「\w」「\d」「\s」を使う sedの正規表現で「\w」「\d」「\s」などを実現するには、次の正規表現に置き換えます。 マッチ方法Perlsed 数字にマ

    sedの正規表現で「\w」「\d」「\s」を実現する方法
  • 1