2017-02-27 4 views
0

誰かが以下のsedコマンドを理解するのを助けることができますか?それはcsvファイルは、このコマンドに入力されているCOUNT-15
- 2
TOT -以下のsedコマンドはどのように動作しますか?

に、insertpoint:

これらは私が使用していた値です。

sed -e ''"${InsertPoint}"'s/^[^,]*,//' -e ''"${InsertPoint}"'s/$/, '"${TOT}"'/' ${Count} 

私は何を何に置き換えているのか知っておく必要がありますか?

答えて

0

ここには、ファイルの2行目に適用される2つの置換コマンドがあります。最初のフィールドは最初のフィールドを削除し、2番目のフィールドは値の15という行の最後にフィールドを追加します。

SEDベーシック置換コマンドので、sのにコマンドを適用するために行番号を付けることができる構文s/old text/replacement text/を有する:

  • '"${InsertPoint}"':ライン2(${InsertPoint}の値)
  • s/^[^,]*,//で(^)任意の数のコンマ以外の文字([^,]*)とコンマ(,)の後に何も入力しない(//
  • '"${InsertPoint}"'15${TOT}、の値)で行$の終わりを置き換えることにより、新しいフィールドを追加し
  • sedコマンドが${Count}値ファイル
+0

こんにちはSLePortに適用され、のための感謝:ライン2

  • s/$/, '"${TOT}"'/で答え。あなたの2番目のポイントごとに。この行が12,3,4,5,6,78,44あったとします.44には78(78、)のカンマ文字が続くため、44を何も置き換えません。私の理解は正しいのですか?そうでない場合は、私を訂正してください –

  • +0

    また、コメントの^と*文字の正確な使い方を教えてください –

    +0

    '^ /'の '^ /'は行頭にマッチすることです。サンプルから '12 'を削除します入力。 '*'は0個以上の文字を表します。例: '、*' 0個以上のコンマ、 '[^、] *':0個以上のカンマ。 – SLePort

    関連する問題