• ベストアンサー

sed、awk、または perl:行末判定

monantiの回答

  • ベストアンサー
  • monanti
  • ベストアンサー率30% (12/40)
回答No.3

文面では行の途中の > は無視して良いようなので、以下で良いと思います。 {   printf( $0 ) } />$/ {   printf( "\n" ) }

noname#9431
質問者

お礼

これです!まさにこれが私がsed, awkに求めていたものです! printf($0)では改行が表示されないこと、 及び、 このような形で命令を繋げられると言うことが 私にとって新たな発見でした。 有難う御座いました!

関連するQ&A

  • DOS版sedでの行末処理について

    DOS版sedで行末文字を置換したいのですが、うまくいきません。 テキストの行末にある半角「L」を全角「」」に差し替えたく、以下のようにやってみましたが、置換が行われません。 sed -e "s/L\$/」/" 入力ファイル名 >出力ファイル名 sedはVectorからダウンロードした 「sed 1.18+mb1.03 フリーソフト マルチバイト文字対応版 GNU sed (96.06.10公開 59K) 」 を使用。 テキストはWindowsで生成したものです。 OSはWindowsXP SP3。 御教授よろしくお願いします。

  • 行頭と行末に文字追加

    文字変換がうまくいきません。 sedとawkもしくはperlを使ってなんとかならないでしょうか? 行の行頭と行末を " で囲みたいのですが。 ------test.txt----- abc cde fgh hijk lm nopq rstu vwx y z ------test.txt---- 以下のように。 "abc cde fgh" "hijk lm" "nopq rstu vwx y z" よろしくお願いします。

    • ベストアンサー
    • Perl
  • sed,awkでのデータ抽出方法

    教えてください。 awk,sed,シェルを使い、カンマ区切りのファイルの1カラム目と2カラム目をキーに、 あるファイルに含まれる行を削除するにはどうすればよいのでしょうか? 例) --aaa.csv-- 111,222,333,444 555,666,777,888 999,000,111,222 --file1.txt-- 111222 555666 の場合、aaa.csvより下記行のみほしい。 999,000,111,222 ご存知でしたら、ご教授ください。 よろしくお願いします。

  • awkの使い方について教えてください。

    awkとperlなどの初心者です。 使い方が分かっていないのですが、 例えば出力のフィールドセパレータを,に変更するには どうすればいいでしょうか? awk '{OFS=,;print}' fileなどとやってみますが、 うまくいきません。2つ以上のコマンドを実行するときの 文法がわかっていないような気がするのですが。 あとperlでよくみかけるperl -neのnは何でしょうか? man perlとやってみても-wと-eの意味しかのっていなくて なからないのですが。ご教授下さい。

  • awkで列指定をして削除

    awkかsedを利用して以下のファイルを処理したいです。 1 2 3 4 5 2 1 3 4 5 1 2 3 4 5 3 1 3 4 5 一列目の値が1の行のみ削除したいです。 2 1 3 4 5 3 1 3 4 5 こんな感じです。 実際に処理するファイルは膨大な行数ががあるためprintでは難しいです。 よろしくお願いします。

  • awkで単語単位での置換

    awkを使って単語単位の置換を行いたいのですが、うまく行きません。 awkで単語単位で置換を行うのにはどの様にすれば宜しいのでしょうか? 何方かご存知の方いらっしゃいましたらご教授願います。 具体的にはsedの以下のコマンドと同等の事をawkで行いたいと思っています。 sed 's/\b置換前の単語\b/置換後の単語/g' 例: ・ファイルの内容 hogehoge abcdefg hogehoge hogehoge bcdef hogehoge hogehoge bcd hogehoge hogehoge abcd hogehoge hogehoge bcd hogehoge bcdef bcd hogehoge 上記ファイルをawkで1行ずつ読み込みの3,5,7行目の”bcd”のみ”HIJ”に置き換える事をしたいと考えています。 下記を試してみたのですが、うまく行きませんでした。 1.awk '{gsub(/\bbcd\b/, "HIJ", $0); print $0}' 2.awk '{gsub(/(bcd)/, "HIJ", $0); print $0}' 1だと全く置換されず、2だと3,5,7行目以外も置換されてしまいます。 どの様にしたらうまく行くのでしょうか?

  • SEDで教えてください。

    Perlのカテで申し訳ないのですが、SEDの記述で教えてください。 次のテキストの”ページ 105”以外の部分をすべて削除する処理の記述はどのようにしたらよいのでしょうか? ページの次の数字105は、いろんな数字が出てきます。 残す部分以外の文字列もいろんなものが出てきます。 ------テキスト--------------- あいうえお ページ 105:かきくけこ1000円さしすせそ。 たちつてと ------------------------------ ↓ -----処理後------------------- ページ 105 ------------------------------

    • ベストアンサー
    • Perl
  • sedでの改行置換

    sedを用いた処理で質問があります。 出力結果の改行を置換して一列として表示しようとしているのですが、どうもうまくいきません。 (perlは敢えて使いません) 例えば、以下のようなファイルがあるとして、 $ cat hoge.txt hoge boo bar この出力結果を加工して、「hoge boo bar」のように、 改行をスペースに置換して一行として表示したい場合は、どのようにすれば良いでしょうか? ちなみに、以下のような使い方だと、うまくいきませんでした。 $ cat hoge.txt | sed 's/\ > / /g' $ cat hoge.txt | sed 's/\n/ /' ■実行環境 OS : RedHat EL 1 sedのバージョン : sed-4.0.7-3 宜しくお願い致します。

  • iText Expressのぶら下がり禁則と行末の

    iText Expressについて質問です。ちなみにiMac(ElCapitan)を使用しています。 行末の禁則処理は、ぶら下がり禁則を選択しているのですが、 行末が?」という組み合わせになると、なぜか」がぶら下がらずに、?と更に一つ前の文字と一緒に(三つそろって)次の行に移されてしまい、元の行にはスペース二つが残されてしまいます。 これが不便で非常に弱っております。ご助言よろしくお願いいたします。

    • ベストアンサー
    • Mac
  • awkについての質問

    実行環境:AIX5.2 シェル:Ksh 以下の2点をシェル内部で実行しているのですが、上手くいきません。 ご教授お願いいたします。 (1)System関数の実行結果(標準出力)をTERM上に表示させず、処理をしたい。 #!/usr/bin/ksh awk '{ system("ls -l") ###具体的にはls -l 結果の2行目、第一フィールドをawk内で変数に格納 }' (2)変数に格納された文字列のバイト数を取得し、変数に格納したい。 length()は文字数を取得できる事は理解したのですが、文字数ではなく、文字列のバイト数を取得したいです。awkに実装されている関数などありますでしょうか?