linuxでファイル内容の置換について

このQ&Aのポイント
  • ファイルの内容を置換する方法について教えてください。
  • 特定の文字列を別の文字列に置換する方法を教えてください。
  • ファイル内の特定の行の文字列を変更する方法を教えてください。
回答を見る
  • ベストアンサー

linuxでファイル内容の置換について

ファイルのabcdefを含む行に対して、最後の「-」以外の「-」の前に「.c」を挿入したいのですが、何か良い方法はありませんでしょうか。 よろしくお願いいたします。 置換前: FALSE /abcdef/ FALSE 1451919600 abcdef %8B%A6-%95%97-%95a-%8D%91-%92%B2-%8A%F8-%96%9C-%89%B0-%90%AB-%89%B0%95a%95%97-%8B%A6%92%B2%90%AB-%96%9C%8D%91%8A%F8-4be8672275e58bc12b941d73fa5365a22b820d825cee506f0598338d65b16717-20160104 置換後: FALSE /abcdef/ FALSE 1451919600 abcdef %8B%A6.c-%95%97.c-%95a.c-%8D%91.c-%92%B2.c-%8A%F8.c-%96%9C.c-%89%B0.c-%90%AB.c-%89%B0%95a%95%97.c-%8B%A6%92%B2%90%AB.c-%96%9C%8D%91%8A%F8.c-4be8672275e58bc12b941d73fa5365a22b820d825cee506f0598338d65b16717-20160104

  • inshin
  • お礼率78% (104/133)

質問者が選んだベストアンサー

  • ベストアンサー
  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

使われてない文字で一度区切り (例えば \n)、それから s//g して戻すのが楽だと思います。 sed '/abcdef/{s/-[^-]*$/\n&/;s/\([^\n]\)-/\1.c-/g;s/\n//;}' before > after

inshin
質問者

お礼

ご教示頂きました方法で無事置換できました!ありがとうございました。

関連するQ&A

  • カルノー図による簡単化

    カルノー図をもちいた簡単化が分かりません。 F=A'BC'D'+A'B'CD+A'B'CD'+AB'C'D'+ABC'D+AB'C'D+ABCD+AB'CD   を簡単化したら F=A'BC'D'+AD+AB+AB'になったのですが・・・? カルノー図を書いて、1をくくった後どうやって簡単化するのかわかりません。 もし分かる方いらっしゃいましたらお願いします!!!

  • Excel置換関数を用いて複数の文字列を置換したい

    上手く置換ができずに困っています。よろしくお願いします。 文字を入力した列の隣に、数値化する列を作成しようと思っています。 置換項目を6つ設定しようと思っているのですが、 A=4 B=3 C=2 D=1 E=0 F=0 の条件です。 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"A","4"),"B","3"),"C","2"),"D","1"),"E","0"),"F","0") これではできませんでした...。 どなたか、わかる方がいらっしゃいましたら、ご教授願います。

  • ブール代数の簡単化の問題についてです。

    学校の課題でブール代数の簡単化についての問題が出ました。 自分でも解いてみたのですが、自信がなかったり、わからないところがあります。 間違った解き方をしている部分、回答があっていない部分など、ご教授ください。 [1] a'b + a'c' + abc = a'(b + c') + abc [2] ab' + ab + a'b' = a(b' + b) + a'b' = a + a'b' [3] ab + ac + ab'c' = ab + a(c + b'c') = ab + a(c + b') = ab + ac + ab' = a(b + b') + ac = a + ac = a [4] ab+ c + abc + bc' = (ab + abc) + (c + bc') = ab + c + b = (ab + b) + c = b + c [5] ab + abc + ab' + ab'c' = (ab + abc) + (ab' + ab'c') = ab + ab' = a [6] a'b'c' + a'bc' + abc' + ab'c' = a'c'(b' + b) + ac'(b + b') = c'(a' + a) = c' [7] abc + ab'c + abc' + ab'c' + a'b'c' = ab(c + c') + ab'c + c'b'(a + a') = ab + ab'c + c'b' = ab + b'(ac + c') = ab + b'(a + c') = ab + ab' + b'c' = a(b + b') + b'c' = a + b'c' [8] a'bc'd + abcd' + abcd + a'bcd' + a'bcd = a'bc'd + abc(d' + d) + a'bc(d' + d) = a'bc'd + bc(a + a') = a'bc'd + bc [9] abd + ab'd' + acd + ac' = a(bd + b'd') + a(cd + c') = a(1) + a(d + c') = a [10] (a + bc)(a + cd) = a + bc * cd = a + bcd よろしくお願いします。

  • ME10でマクロ

    ME10.05などで、↓保存されてる図面(jpgです) http://jp.y42.briefcase.yahoo.co.jp/bc/seredipi/lst?.dir=/%b8%f8%b3%ab%a5%d5%a5%a9%a5%eb%a5%c02&.view=l&.src=bc&.done=http%3a//jp.y42.briefcase.yahoo.co.jp/bc/seredipi/lst%3f.dir=/%25b8%25f8%25b3%25ab%25a5%25d5%25a5%25a9%25a5%25eb%25a5%25c02%26.src=bc%26.view=l のような走行軌跡を、マクロを使って自動で書きたいのですが、相当複雑なプログラムになってしまいますか?

  • スマホ用カードゲームのイラストレーターについて

    「天空のクリスタリア」というゲームで、 「グリフォン」「マスタードラゴン」「スノウドラゴン」「ホルス」のイラストレーターは誰でしょうか? すごく好みの絵柄なのですが、探しても見つかりません… ご存知の方教えていただけると嬉しいです。よろしくお願いします。 http://wikiwiki.jp/fsameba/?%A5%AB%A1%BC%A5%C9%2F%B8%F7%2F%A5%B0%A5%EA%A5%D5%A5%A9%A5%F3 http://wikiwiki.jp/fsameba/?%A5%AB%A1%BC%A5%C9%2F%B8%F7%2F%A5%DE%A5%B9%A5%BF%A1%BC%A5%C9%A5%E9%A5%B4%A5%F3 http://wikiwiki.jp/fsameba/?%A5%AB%A1%BC%A5%C9%2F%BF%E5%2F%A5%B9%A5%CE%A5%A6%A5%C9%A5%E9%A5%B4%A5%F3 http://wikiwiki.jp/fsameba/?%A5%AB%A1%BC%A5%C9%2F%B8%F7%2F%A5%DB%A5%EB%A5%B9

  • 文字の置換のソフトを探しています。

     テキストエディター上のことです。 ABCD"a-a" , EFGH="b-b",, ABCD"c-c" , EFGH="d-d",, ABCD"e-e" , EFGH="f-f ",,        ・        ・        ・ という感じで文字が並んでいるときに ABCD"a-a" , EFGH="a-a",, ABCD"c-c" , EFGH="c-c",, ABCD"e-e" , EFGH="e-e",,        ・        ・        ・  のように文字を置換したいのですが、置換する量が多いので、   自動で置換してくれるソフトはないでしょうか?   自分の勝手なイメージですが、   ABCD"から",までの文字を読み取って   EFGH="から",,までに文字を入れてくれるソフトような   ソフトがあればと思います。   もしそのようなソフトをご存知でしたら、教えてください。   よろしくお願いします。

  • 三角形の面積の比

    三角形ABCでAB=6、BC=8、CA=10で、AB上に点D、BC上に点E、CA上に点Fがある。AD=DB=3、BE=2、EC=6、CF=2、FA=8の時、△ABC:△DEFを求めよ。

  • 【香川県庁のWebフォームからイントラネットに侵入

    【香川県庁のWebフォームからイントラネットに侵入してクラッキングできるってことですか?】香川県のご意見・お問い合わせ(担当課へのメール)のフォームから送ると192.168.7.21のプライベートIPアドレスに届くそうですが、このフォームからイントラネットに書き込めるってことですか? https://www.pref.kagawa.lg.jp/kgwpub/pub/contact/index.php?to=gikai&ret=0&text=%81y%8C%A7%8Bc%89%EF%83z%81[%83%80%83y%81[%83W%82%D6%82%CC%82%B2%88%D3%8C%A9%94%A0%81z\n%81@%8C%A7%8Bc%89%EF%82%C5%82%CD%81A%8D%A1%8C%E3%82%E0%8Bc%89%EF%82%CC%8F%F3%8B%B5%82%F0%82%ED%82%A9%82%E8%82%E2%82%B7%82%AD%82%A8%92m%82%E7%82%B9%82%B5%82%BD%82%A2%82%C6%8Ev%82%C1%82%C4%82%A2%82%DC%82%B7%81B%8Bc%89%EF%83z%81[%83%80%83y%81[%83W%82%F0%82%B2%97%97%82%C9%82%C8%82%C1%82%BD%82%B2%88%D3%8C%A9%81E%82%B2%8A%B4%91z%82%F0%82%A8%95%B7%82%A9%82%B9%82%AD%82%BE%82%B3%82%A2%81B%82%A2%82%BD%82%BE%82%AB%82%DC%82%B5%82%BD%82%B2%88%D3%8C%A9%93%99%82%CD%81A%8AF%97l%95%FB%82%A9%82%E7%82%CC%8BM%8Fd%82%C8%90%BA%82%C6%82%B5%82%C4%81A%8EQ%8Dl%82%C9%82%B3%82%B9%82%C4%82%A2%82%BD%82%BE%82%AB%82%DC%82%B7%81B\n%81%9F%82%B2%92%8D%88%D3%81%9F\n%81@%81%9C%83%81%81[%83%8B%82%C9%82%E6%82%E9%92%C2%8F%EE%82%E2%8Bc%88%F5%8C%C2%90l%82%C9%8A%D6%82%B7%82%E9%83%81%81[%83%8B%82%CD%82%A8%8E%F3%82%AF%82%C5%82%AB%82%DC%82%B9%82%F1%81B\n\n%81y%8E%81%81@%81@%96%BC%81z\n%81y%8FZ%81@%81@%8F%8A%81z\n%81y%82d%81|%82lail%81z\n%81y%8C%8F%81@%81@%96%BC%81z\n%81y%82%B2%88%D3%8C%A9%81E%82%B2%8A%B4%91z%81z

  • 等式を満たす行列

    A = (a b)について、A^2-A-2E=0が成り立つとき、a+d, ad-bcの値を求めよ。 (c d) 自分の回答 (a b)^2 -(a b)-(2 0) (c d)   (c d)  (0 2) =(a^2+bc ab+bd) -(a b)  (ac+dc bc+d^2)  (c d) =(a^2+bc-a-2 ab+bd-b)   (ac+dc-c bc+d^2-d-2) a^2+bc-a=2(1) ab+bd-b=0(2) ac+dc-c=0(3) bc+d^2-d=2(4) (2)より、 a+b=1 a=1-d a^2+bc-a=2 a(a-1)+bc=2 a(1-d-1)+bc=2 -ad+bc=2 ad-bc=-2 よって、 a+b=1 ad-bc=-2 このやり方であっていますでしょうか?

  • 文字の置換

    ワードを使っての目数表で      2A 3B 3D 2B 9F 等々の表(約20ページほど)があります。 これをA2 B3 D3 B2 F9に変えたいのですが 置換を使って少ない手数でできないでしょうか。