要件ごとに処理する必要がある複数の行の列を持つファイルがあります。私は、変数でこれを行うスクリプトを見つけましたが、これは私のコードはより複雑になりますように私は、変数でこれを行う必要はありません複数の条件でファイルを編集するsedコマンド
ファイル:
Id,Name,class,Section
1,Dileep,MBA,B
2,Pavan,tenth,C
3,Girish,graduate,D
私の出力ファイルは次のようにする必要があります -
ファイル:
Id,Name,Class,Section
1,Dileep,MBA,B
2,Pavan,MCA,C
3,Girish,MBA,D
私はこれを行うにはsedコマンドを使用して、以下の私は、このために作成したスクリプトでてきました。
#! /bin/sh
file=/tmp/dileep/details.txt
cat $file | sed '/Id,Name,/s/class/**C**lass/g' | tee -a $file
cat $file | sed '/2,Pavan,/s/tenth/**MCA**/g' | tee -a $file
cat $file | sed '/3,Girish,/s/graduate/**MBA**/g' | tee -a $file
私は最初の行を取得することができていますが、ヘッダと1を変更しましたが、実際のデータは、これはハードコーディングされたデータになるだろうと私はこの変更を行うことができません。
私が間違っていることを教えてください。どうすればこの問題を解決できますか?
を避け、
以上を使用します。入力ファイルが 'tee'によって使用されたバッファーサイズより大きいとすぐに入力ファイルが失われます。 – hek2mgl
行が '2、Pavan'で始まったら、' tenth'を 'MCA'で置き換えたいですか?またはなぜあなたは '/ 2、Pavan、/ s/tenth/** MCA **/g'をやっていますか?単に/ senth/** MCA **/g'だけではありませんか? – hansaplast
2の場合はPavanがMCAに変更します。クラスが10番目の場合も同様です。必要なコンテンツが見つかった場合は検証してから、希望の値に変更する必要があります – Dileep