• ベストアンサー

linux環境にて、ある特定の行に追記

linux環境にて、ある特定の行に追記 お世話になっております。 linux環境にて、<aaa.txt>と<111.txt>テキストがあった時に <111.txt>の特定箇所に<aaa.txt>の内容を定期的に自動挿入し、ファイルを生成したい場合、どのようなコマンドをスケジューリングすればよいでしょうか? 尚、完成イメージは<kansei.txt>のようになります。 <aaa.txt> ↓内容 abcde <111.txt> ↓内容 1 2 3 4 5 <kansei.txt> ↓内容 1 2 abcde 3 4 5 以上、よろしくおねがいします

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

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

特定箇所というのが行番号なら sed '2r aaa.txt' 111.txt > kansei.txt 文字列としてなら sed '/^2/r aaa.txt' 111.txt > kansei.txt とか。もう少し加工するなら awk 使うか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Linuxの並び替えで特定の行を一番最後の行に配置

    Linux において sort などを使ったテキストファイルの中身の並び替えにおいて 特定の(なるべく複数の)行、ここでは仮に target line 1 target line 2 という内容の行だとします(ご覧の通り空白が入っています)。 これを一番最後の行に配置されるようにしたい、などということは可能でしょうか? また、 sort -u と組み合わせるには sort -u input.txt | sort > output.txt の後半部分をこのケースのコマンドに書き換えるだけで問題ないでしょうか? どうぞよろしくお願いいたします。

  • Linux sedコマンド 特定行の置換

    こんにちは テキストファイルの内容をsedコマンドで特定の行の頭に#を付けるようにしたいのですが、 うまくいきません。どのようにしたら良いでしょうか。 --実行前の内容-- * * * * * /tmp/tst.sh * * * * * /opt/aaa.sh --想定結果-- #* * * * * /tmp/tst.sh * * * * * /opt/aaa.sh

  • batやvbsでテキストファイルの何行目に指定の文字を追記する方法

    現在、下記内容のファイル(test.txt)指定した行に指定文字を追記できる方法を探しております。 【test.txt内容】 [test1] :::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::: [test2] [test4] :::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::: [test5] :::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::: end 【追記したい内容】 test.txtの"[test2]"行の下の行に以下の文字を追記したいです。 [test3] :::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::: 指定行に追記するというコマンド自体はないと思い、batやwshの本などを読んではいるのですがなかなか良い考えが浮かびません。 ご教示の程よろしくお願いいたします。

  • Linuxで焼いたBluray追記部分が読めない

    お世話になっております。 Linuxでgrowisofsコマンド(-R -Jオプション付き)で焼いたBluray第二セッション以降の追記部分が読めません。 Linuxで焼いたBluray第二セッション以降の追記部分はLinux環境ではiso9660でマウントすれば読めます。 しかしWindows7環境ではこのディスクが第一セッションしか読めず第二セッション以降の追記部分が読めません。 Windows7環境ではこのディスクのプロパティを確認するとUDFと表記されています。 Windows7側がUDFをごり押ししている状態です。 この状態ではWindows7環境ではLinuxで焼いたBluray第二セッション以降の追記部分が読めません。 (Linux環境でもUDFでマウントした場合はLinuxで焼いたBluray第二セッション以降の追記部分は読めません。Linux環境でもUDFでマウントした場合はLinuxで焼いたBluray第一セッションしか読めません。Linux環境でもUDFではなくiso9660でマウントする必要があります) Windows7環境でもLinuxで焼いたBluray第二セッション以降の追記部分をマウント(UDFではなくiso9660)したいのですが方法が分かりません。 Windows PowerShellの Get-PSDrive New-PSDrive あたりでしょうか?これらのコマンドでBlurayをiso9660でマウントする方法が分かりません。(Linux環境ではBlurayをiso9660でマウント可能) http://technet.microsoft.com/ja-jp/library/hh849796%28v=wps.620%29.aspx http://technet.microsoft.com/ja-jp/library/hh849829%28v=wps.620%29.aspx UDFそのもののご回答は要りません。UDFとは何か、という質問ではありません。UDFとは何か、に対するご回答は要りません。 Windows7環境でもLinuxで焼いたBluray第二セッション以降の追記部分をマウント(UDFではなくiso9660)したいのですが方法が分かりません。 よろしくご指導お願いいたします。

  • linux5の環境下で困っています。

    linux5の環境下で困っています。 あるテキストファイルで、マッチングさせた行の数行下の行を置換するにはどうしたら良いでしょうか? ここに、001.txtがあるとします。内容は、以下の通りだとします。 ここから------------------------------------- ここは東京都です。 私の名前はkurokuro64です。 100 200 300 100 100 200 ここまで------------------------------------- このテキストファイルの2行目「私の名前はkurokuro64です。」をマッチングさせて、 6行目の「100」だけを「777」に換えるにはどうしたら良いでしょうか? やはりgrepやsedを駆使して抽出して置換するのでしょうか? 毎回、素人丸出しで大変申し訳無いのですが、どうぞ宜しくお願い致します。

  • ファイルから特定の行を出力したい

    あるファイルの特定の一行だけを取りだすunixの コマンドを教えて下さい。 具体的には cat a.txt 1gyoume 3gyoume 4gyoume 5gyoume 6gyoume 7gyoume 8gyoume といったファイルの末尾からX行目の内容を変数に入れたいのです。 a.txtが8行あると判断して8-X行目でファイルを分割、そのファイル をtailコマンドで末尾1行目だけ出力すると出来そうだと思ってい るのですがもっと簡単な方法はないでしょうか。

  • perlで特定行から特定行までを抜き出しor置換

    perlで以下のようなことをしたいと考えています。 以下のことを、コマンドラインから「perl ~」という形で 実行したいのですが、どのよにすればよいでしょうか。 1.特定行から特定行までを抜き出し 2.特定行から特定行の範囲で文字列置換 例えば、次のようなテキストファイルがあったとします。 example.txt ================================== #START aaaa hogehoge test okok perl script #END ================================== 上記ファイルを読み込んで、 1.「#START」から「#END」の間に挟まれた行だけ抜き出し 2.「#START」から「#END」の間で、「test」を置換 のです。 sedで言うところの sed -e '/#START/,/#END/ s/YYYYMM/201603/g' test.txt をやりたいのです。

    • ベストアンサー
    • Perl
  • シェルで特定行を処理する方法を教えてください。

    初めてご質問させていただきます 数時間考えましたが、全くできない初心者です。 awkとかも使ってみましたが・ちんぷんかんぷんです。 よろしくお願いいたします。 環境:RedHat、シェル:bash [やりたいこと] 特定の文字以外から始まる行を、 特定文字から始まる行へ連結させたい。 (例  aaaから始まっていない行(bbb、ccc、ddd)を、  aaaから始まる行へ出力させる。 ■元となるテキストファイル ============ aaa bbb ccc ddd aaa aaa aaa eee aaa ============ ■整形後のファイル ============ aaabbbcccddd aaa aaa aaaeee aaa ============

  • vb2010でテキストファイルの1行置きの読み込み

    VB2010です。 フォームにリストボックスとコマンドボタンがあります。 コマンドボタンをおしたら”C:\test.txt”の内容を2行目から一行おきにリストボックスに 表示させたいのですが、どのようなコードを書いたらよいのでしょうか? test.txt内容 aaa あいうえお 123 かきくけこ 456 さしすせそ 789 リストボックスには あいうえお かきくけこ さしすせそ と表示させたいです。

  • sedを使って複数ファイルの先頭行を表示

    以下の様なファイルがあります。 各ファイルの先頭行をとりだしたいのですが、headコマンドを使うと ファイル名と結果が分かれて表示されます。 sedで、-nオプションの行番号指定で表示することができるので、 sed -n '1p' *.txt のワイルドカード指定でやったのですが、 この場合だと複数ファイルとみてくれなくて、すべてのファイルを ひとつにしてその先頭を表示しているみたいです。 できれば、各ファイル毎に、ファイル名と結果を1行にして表示したい のですが、どうすればよいでしょうか。 参照ファイル cat 1.txt 12345 67890 cat 2.txt abcde fghij cat 3.txt 11111 22222 headコマンドで実行 $ head -n 1 *.txt ==> 1.txt <== 12345 ==> 2.txt <== abcde ==> 3.txt <== 11111 sedで実行 $ sed -n '1p' *.txt 12345