sed
sed の複数条件を複数列挙する。 cat sample.txt | sed -e 's|^|s/|' -e 's|$|/|' パイプ2個使わなくて良い cat sample.txt | sed -e 's|^|s/|' | sed -e 's|$|/|' 正規表現の|でも工夫できる cat sample.txt | sed -e 's|[apple|pen]|s/|' 複数列挙するほ…
指定行を表示 / head 相当をする 以前、sed で行挿入をシンプルに行う。 とういう記事を書いたとき、範囲指定について言及した。 今回は、sedの範囲指定を使って 先頭からN行を取得してみる。 範囲指定の練習 行番号を指定して、その行を表示する。 指定行を…
sedなら出来る。 sed で検索文字列の直前に行を作って入れられる。 今回使ったsedはgnu sedです。 マッチの直前に行を追加 サンプル echo hello | sed '/hello/i world' hello の直前にsay を入れました。 sed で行挿入をシンプルにやる。 sed を使って、設…
sed の区切り文字を変える sed コマンドでは、検索と置換の文字列を区切りを変えられます。 普通はスラッシュを使うと思うんだけど、スラッシュはフォルダ名やPATHで使われるため、エスケープ処理が面倒になる。 sed 's/search_name/takuya/g'; 区切りを変え…
sedコマンドで置換すると、symlink が壊れる。 sed -i でファイルを置換するときのリンクファイルの扱い。 実験 echo xxx > a ln -sr a b sed -i "s|xxx|yyy|" a b # bは通常ファイルになる。 sed を使うときには絶対に知っておかなくてはいけない。 シンボ…
sed で改行を消してCSVにしたい。 コマンドの結果の改行を消してCSVのようなカンマ区切りに変換したい。 他の置換ツールや python / ruby のワンライナーに回せばいいと思うけど、sedでできたほうが汎用性が高そう。そのためsedで改行を置換、改行を別の文字…
sedで1行の中に複数回出てくる文字を全部置換 sed で置換していると、普段は気にならないけど、複数回登場する場合に置換漏れが出てくる。 グローバルのマッチング・オプション /g がある。 s/cat/dog/g 時々忘れそうになる 設定ファイルを触っているときに…
sed で数値指定する 数字のマッチは、次のようになる。 sed '/[[:digit:]]/' sed '/[0-9]/' 正規表現に親しんでいると、つぎように \d を書きたくなるが、これは動かない。 sed '/\d/' # 動かない。 sed で複数桁の数字にマッチさせる。 動かない sed '/[[:d…
sed で、文字列を探し、文字列が見つかった行を消す。 sed -e '/search/d' 検索語 search を含む行を削除。 これで指定文字列を探してその行を除去することができる。 行をまるごと消すのに、改行コードは必要ない。 ありがちなミス。 sed 's/search\n//' ##…
sed で指定した行に文字を挿入 sed 使うと、X行目に文字を追加することができます。 sed -i '3i#Hello' /etc/hosts これを実行すると、 3行目に、#Hello が挿入されます。 ちゃんと3行目に追加されたのか nl を組み合わせることで、sed の結果を行数を見な…
mac の sed で改行を置換 echo $PATH | /usr/bin/sed 's/:/\'$'\n/g' $ を使えば出来る 2019-05-16 カテゴリ整理 関連資料 http://utatane-cheers.hatenablog.com/entry/2017/11/26/131959
sed で改行の置換をする方法 sed ':a;N;$!ba;s/\n/<replacement_txt>/g' いろいろフラグを追加したら出来るみたい。 記号にギョっとするけど、ちゃんと出来るよ takuya@aqua-iot$ cat - | sed ':a;N;$!ba;s/\n/ /g' Hello world I am Hello world I am 一瞬記号に面食らって何</replacement_txt>…
TABを置換してCSVを作りたいとしよう。TAB置換には何を使いますか? sed/awk/tr/perl/ruby 色々と考えられる。 一番楽なのは tr tr '\t' ',' tr コマンドで文字を置換するのが多分楽 takuya@atom:~$ sudo atq | tr '\t' ',' 806,Wed Aug 6 19:47:00 2014 a w…
指定した行を削除したい。 ファイルを開くのすら面倒じゃないですか? sed でファイルを編集 sed -i -e '10,10d' /path/to/file 10 行目を消す。 sed で簡単にファイルを編集 sed -i -e '15d' /Users/takuya/.ssh/known_hosts sed は stream edior の ed 拡…
Mac OSXの /usr/bin/sed は置換で改行文字をエスケープできなかった echo $PYTHONPATH | sed s/:/\n/g # ⇐改行コードに置換できない # => /usr/local/lib/python2.7/site-packagesn/usr/local/lib/python2.7/site-packagesnもうどうしていいかわからない。 …