2017-05-15 14 views
-1

sedを使ってファイルの最後に/root/test.confという行を追加しようとしています。私は、FreeBSDを使用して、私はシンプルな行を追加しようとすると、私はいつものようにいくつかのエラーを取得:コマンド sedファイルの末尾に行を追加します。

  • 未定義のラベル「est.conf」
  • ファイルので

    • 余分な文字を

      #Test 
      firstLine 
      secondLine 
      
      !p.p 
      *.* 
      

      そして、私はこのような何かを追加したい:このようなものです

      (return \n) 
      !word 
      other (5 tab between "other" and "/usr/local") /usr/local 
      

      sedでできない場合は、別のオプションがありますか?

      ありがとうございました!

    答えて

    1

    あなたがすべてでsedを使用する必要があるようですが、多分ちょうどcatヒアドキュメントで、鳴らない:行はの一番下に追加されているので、

    cat >>test.conf <<EOF 
    whatever you want here 
    
    more stuff 
    EOF 
    

    >>は、「追加」モードでtest.confを開きますファイルであり、<<EOFは標準入力経由でcatに行を渡すことができるheredocです。 タブ続いV -

    あなたは Ctrlキーを使用することができ、対話型端末でリテラルのタブを追加します。

    +1

    質問の特定の例では、 'EOF'を引用するか、'! 'が履歴拡張の問題を引き起こす可能性があることに注意してください。 –

    +0

    ありがとう、それは動作します! – icarbajo

    1

    ファイルの最後に行を追加するためにsedのような特別なツールは必要ありません。

    $ echo "This is last line" >>file 
    #or 
    $ printf "This is last line\n" >>file 
    

    はほぼすべてのプラットフォームで問題なく動作します。しかし、特殊文字をエスケープするか、一重/二重引用符で囲む必要があります。

    関連する問題