それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

sed

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/|' 複数列挙するほ…

sedで指定行表示 / head コマンド相当

指定行を表示 / head 相当をする 以前、sed で行挿入をシンプルに行う。 とういう記事を書いたとき、範囲指定について言及した。 今回は、sedの範囲指定を使って 先頭からN行を取得してみる。 範囲指定の練習 行番号を指定して、その行を表示する。 指定行を…

sed で行挿入をシンプルに行う。

sedなら出来る。 sed で検索文字列の直前に行を作って入れられる。 今回使ったsedはgnu sedです。 マッチの直前に行を追加 サンプル echo hello | sed '/hello/i world' hello の直前にsay を入れました。 sed で行挿入をシンプルにやる。 sed を使って、設…

sed コマンドで区切り文字を変えて、ファイル名に一致させる

sed の区切り文字を変える sed コマンドでは、検索と置換の文字列を区切りを変えられます。 普通はスラッシュを使うと思うんだけど、スラッシュはフォルダ名やPATHで使われるため、エスケープ処理が面倒になる。 sed 's/search_name/takuya/g'; 区切りを変え…

sedコマンドが、シンボリックリンク考慮しないが、gnu sedはなんとかなる

sedコマンドで置換すると、symlink が壊れる。 sed -i でファイルを置換するときのリンクファイルの扱い。 実験 echo xxx > a ln -sr a b sed -i "s|xxx|yyy|" a b # bは通常ファイルになる。 sed を使うときには絶対に知っておかなくてはいけない。 シンボ…

sed で改行削除/sedで全文(複数行マッチ)

sed で改行を消してCSVにしたい。 コマンドの結果の改行を消してCSVのようなカンマ区切りに変換したい。 他の置換ツールや python / ruby のワンライナーに回せばいいと思うけど、sedでできたほうが汎用性が高そう。そのためsedで改行を置換、改行を別の文字…

sed で出現文字をすべて置換する /g オプション

sedで1行の中に複数回出てくる文字を全部置換 sed で置換していると、普段は気にならないけど、複数回登場する場合に置換漏れが出てくる。 グローバルのマッチング・オプション /g がある。 s/cat/dog/g 時々忘れそうになる 設定ファイルを触っているときに…

sed で数字の繰り返しを正規表現で置換するには、文字指定が違う

sed で数値指定する 数字のマッチは、次のようになる。 sed '/[[:digit:]]/' sed '/[0-9]/' 正規表現に親しんでいると、つぎように \d を書きたくなるが、これは動かない。 sed '/\d/' # 動かない。 sed で複数桁の数字にマッチさせる。 動かない sed '/[[:d…

sed 文字列が含まれる行を削除する

sed で、文字列を探し、文字列が見つかった行を消す。 sed -e '/search/d' 検索語 search を含む行を削除。 これで指定文字列を探してその行を除去することができる。 行をまるごと消すのに、改行コードは必要ない。 ありがちなミス。 sed 's/search\n//' ##…

sed で指定行に「挿入」する

sed で指定した行に文字を挿入 sed 使うと、X行目に文字を追加することができます。 sed -i '3i#Hello' /etc/hosts これを実行すると、 3行目に、#Hello が挿入されます。 ちゃんと3行目に追加されたのか nl を組み合わせることで、sed の結果を行数を見な…

mac の sed (bsd) で 改行を置換する

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 で改行の置換をする方法 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やスペースを置換する方法

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

指定した行を削除したい。 ファイルを開くのすら面倒じゃないですか? sed でファイルを編集 sed -i -e '10,10d' /path/to/file 10 行目を消す。 sed で簡単にファイルを編集 sed -i -e '15d' /Users/takuya/.ssh/known_hosts sed は stream edior の ed 拡…

OSX の sed は改行コードの挿入が・・・出来ない?

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もうどうしていいかわからない。 …