タグ

sedに関するrabbit2goのブックマーク (10)

  • シェルスクリプトでの改行文字の削除にハマる - HacoLab

    僕はただ改行を削除したいだけなんだ。。。 POSIX準拠の範囲でなんとかしたい。 単純に全改行を削除 指定パターンにマッチした行のみ改行を削除 sedの挙動解説 コード解説 妥協策(行末パターンを指定して削除) あるパターンにはさまれた複数行を1行にまとめる Step 1. sedでまとめたい範囲だけを抜き出す。 Step 2. grep -vで<start>行を省いて、<end>を置換可能な一文字にする。 Step 3. 改行を一旦消して、<end>を置換した文字を改行に置換 さいごに その他参考 単純に全改行を削除 1文字の削除にはtrコマンドを使いましょ。 (infileは改行を削除したいファイル) tr -d '\n' < infile 指定パターンにマッチした行のみ改行を削除 改行文字の削除の例でこんな感じのを見かける。 GNU系とBSD系で書き方が違う時点で目的とはかけ離れるん

    シェルスクリプトでの改行文字の削除にハマる - HacoLab
  • 【Shell】XMLファイルから要素や属性を抽出する - マイナー・マイナー

    XMLファイルから特定の要素や属性を抽出して整形する方法をまとめました。Shellのgrep、sed、xmllintコマンドを組み合わせて、要素や属性を取得します。 下記ファイル(samle.xml)を考えます。 ※実際には要素間に改行とスペースが入っていないファイルです。 <?xml version="1.0" encoding="utf-8"?> <members> <member id="1"> <name>hoge</name> <age>21</age> </member> <member id="2"> <name>piyo</name> <age>34</age> </member> <member id="3"> <name>foo</name> <age>25</age> </member> <member id="4"> <name>bar</name> <age>18

    【Shell】XMLファイルから要素や属性を抽出する - マイナー・マイナー
  • シェルスクリプトで部分文字列を切り出す方法 - myhd

    例:"myokoym(25)"の括弧内の数字だけを取り出したい場合。 1.cutを使う http://www.k4.dion.ne.jp/~mms/unix/linux_com/cut.html $ echo "myokoym(25)" | cut -d"(" -f2 | cut -d")" -f1 25 上記は、cutコマンドを区切り文字指定で使用する例です。 「-dオプションで区切り文字を指定し、-fオプションでn番目に区切られている文字列を切り出す」という処理を2回繰り返しています。(nは1から始まる) 2.sedを使う http://www.k4.dion.ne.jp/~mms/unix/linux_com/sed.html $ echo "myokoym(25)" | sed -e "s/^.*(\(.*\)).*$/\1/" 25 上記はsedのsコマンドで、文字列の置換を行っ

    シェルスクリプトで部分文字列を切り出す方法 - myhd
  • sedでこういう時はどう書く? - Qiita

    シェルでデータ加工するときSEDをよく使いますが、その利用例と覚え書きです、参考になれば sedコマンドはLinux/Unix/BSD/OSXに標準で入っているので、Macの人なら覚えておくと捗るかも(Linuxとは少し違うのでそこは調べてね?) 当方の利用環境がRedhat系Linuxメインですので、微妙に書式が異なることがありますが、大体の書式は同じはずですので、そこは、ご容赦願います (4/15 ちょっと追加…) Windowsでもsed使いたいという人がいたので、ちょっと追記、以下のサイトからWindows用のバイナリを取得すれば、Windowsでもsedが使えます。WSLなどLinux環境を追加したくない、sedのコマンドだけほしい、PowerShellやプロンプトで使えればいいだけという人にお勧めです。 sed for Windows Site 使用例をいろいろ上げてみる '#

    sedでこういう時はどう書く? - Qiita
  • sed | テキストの置換処理を得意とするスクリプト言語

    2023.12.01 sed は、テキストの置換処理を行う目的で作られたスクリプト言語である。ほとんどの場合、1 行のスクリプトを記述だけで、テキストの置換などをはじめとして、後方参照を利用した置換などの複雑な処理も可能である。インターネットで one-liners for sed などと検索する、様々な処理を 1 行の sed スクリプトで行う例を多く見つけることができる。 文字列置換 sed コマンドを利用して、文字列の置換を行うとき、sed コマンドに続いて -e オプションを付けて、その後ろに置換パターンなどを書く。 基的な置換方法 例えば、sample.fa ファイル中の、各行に出現する最初の TAG を * に置換する場合は以下のようにする。 sed -e 's/TAG/*/' sample.fa 各行に出現するすべての TAG を * に置換する場合は以下のように g を付

  • GNU/BSDでのsedにおける正規表現の扱いの違い

    B! 26 0 0 0 GNU/BSDでのコマンドの違いについて。 今回はsedコマンドの正規表現の取り扱いについてのメモ。 sedでの正規表現 GNU BSD まとめ sedでの正規表現 LinuxにもMacなどBSD系Unixにもsedは入ってますが、 他のコマンドにもあるように GNUのものとBSDのものとでオプション等が多少違います。 前に-iを使ったファイルの置き換えにおける違い や 改行の仕方 について挙げましたが、 今回は正規表現について。 GNU GNU版sedだと、正規表現で使う文字をバックスラッシュ(\) でエスケープすることで特にオプションを付けずに使う事が出来ます。 $ echo aaabbbccc | sed 's/aaa\(BBB\|bbb\)ccc/aaaccc/g' aaaccc BBBとbbbの何れかの文字列に対応する(BBB|bbb)という正規表現を使っ

    GNU/BSDでのsedにおける正規表現の扱いの違い
  • sed コマンド | コマンドの使い方(Linux) | hydroculのメモ

    sed コマンド 2015/05/13 文字列を全置換したり、行単位で抽出したり、削除したり、いろいろなテキスト処理のできるコマンド。処理内容はコマンドラインパラメータで指定して、非対話的に一括処理できる。 sedで書ける処理であれば、処理内容にもよるが、perlのワンライナーで書くよりも速いことが多い。 sedというコマンド名は Stream EDitor の略らしい。 基的な使い方 2021/01/17 標準入力をなにかしら処理して標準出力に出力するので、パイプとして使える。まあたいていのUNIXツールはパイプとして使えるのだが。 ファイル名を指定すればそのファイルを読み込んで処理して標準出力に出力する。 ファイル名を指定してオプション -i を使えば、そのファイルを読み込んで、結果をそのファイルに上書きする。ファイル自体を編集したい場合には便利。(-i はGNU sed限定) 処理

  • Macの(BSD版)sed での上書き保存

    Macに入っているsedはBSD版sedとかいうやつで、Linuxなどに入っているGNU版sedとは様々な点で仕様が異なります。 中でも引っかかりやすいのがファイル上書きオプションの-iについてです。あんまりちゃんと説明した記事が見当たらないのでまとめておきます。 以下のようなコマンドを実行すると、BSD sedでは意図通りに実行されません。 $ echo aaabbbcc > hoge.txt $ sed -i 's/aaa/zzz/' hoge.txt # BSD sed sed: 1: "hoge.txt": extra characters at the end of h command $ gsed -i 's/aaa/zzz/' hoge.txt # GNU sed $ cat hoge.txt zzzbbbcc

    Macの(BSD版)sed での上書き保存
  • sedコマンドで文字列を改行に置換する、しかもスマートに置換する。 - Qiita

    概要 sedコマンドで任意の文字列を改行に置換する方法 知ってはいるけど記述が汚いのでもっと綺麗に書きたい。 そもそも改行ってどーやるの? 例えば、\nって書いてあるところを全部物の改行に置換したいならこーやります。 sedの置換コマンド後半部分に、エスケープ用のバックスラッシュと、実際の改行コードを書くわけです。 でもこれって汚い!コマンドの途中で改行されちゃうのはイヤんな感じ。 スマートにいきましょ。 綺麗に書きたければ改行文字をシェル変数に入れておき、実際の改行を書く代わりに使えばいいのです。つまり、シェル変数$LFなどを作ってそこに'\'と'<0x0A>'の2文字を格納し、これを使えばいいのです。 まずは$LFに'\'と'<0x0A>'を入れましょ。 が!素直にはシェル変数には入ってくれません。 一筋縄ではいかない。 printfコマンドを使うとキーボードから打てないコントロール

    sedコマンドで文字列を改行に置換する、しかもスマートに置換する。 - Qiita
  • Apacheログに色を付けて快適tail生活 - y-kawazの日記

    ツイッターで「Apacheログをtail中にステータスコード部分だけに色つけしたい」ってのを見たので作ってみた。 #!/bin/sed -f ## MEMO # [0m reset # [1m bold # [3m italic # [4m underline # [5m blink # [30m black # [31m red # [32m green # [33m yellow # [34m blue # [35m magenta # [36m cyan # [37m white s/\(HTTP\/1..\"\) \(2[0-9][0-9]\) /\1 \x1b[34m\2\x1b[0m / s/\(HTTP\/1..\"\) \(3[0-9][0-9]\) /\1 \x1b[32m\2\x1b[0m / s/\(HTTP\/1..\"\) \(4[0-9][0-9]\) /\1

    Apacheログに色を付けて快適tail生活 - y-kawazの日記
  • 1