2017-12-04 10 views
-3
input file: 
cat file1.txt 
^AirIfLoadProfile=1$ trafficModelPrb bitRatePerQci=0 0 0 0 0 0 0 0 0 
^AirIfLoadProfile=1$ trafficModelPrb bufferStatus=1 
^AirIfLoadProfile=1$ trafficModelPrb noOfArtificialUsers=0 
^AirIfLoadProfile=1$ trafficModelPrb qciDistSinrHigh=0 0 0 0 0 0 0 0 0 
^AirIfLoadProfile=1$ trafficModelPrb qciDistSinrLow=0 0 0 0 0 0 0 0 0 
^AirIfLoadProfile=1$ trafficModelPrb qciDistSinrMedium=100 0 0 0 0 0 0 0 0 
^AirIfLoadProfile=1$ trafficModelPrb ulDlRatioPerQci=0 0 0 0 0 0 0 0 0 

output file: 
cat file2.txt 
^AirIfLoadProfile=1$;trafficModelPrb;bitRatePerQci=0 0 0 0 0 0 0 0 0 
^AirIfLoadProfile=1$;trafficModelPrb;bufferStatus=1 
^AirIfLoadProfile=1$;trafficModelPrb;noOfArtificialUsers=0 
^AirIfLoadProfile=1$;trafficModelPrb;qciDistSinrHigh=0 0 0 0 0 0 0 0 0 
^AirIfLoadProfile=1$;trafficModelPrb;qciDistSinrLow=0 0 0 0 0 0 0 0 0 
^AirIfLoadProfile=1$;trafficModelPrb;qciDistSinrMedium=100 0 0 0 0 0 0 0 0 
^AirIfLoadProfile=1$;trafficModelPrb;ulDlRatioPerQci=0 0 0 0 0 0 0 0 0 

カラム1のスペース区切り文字をカラム2に、カラム2をカラム3にセミコロンで置き換えます。 file2は出力です。Bash-shell特定の列間のセパレータを置換する

+3

ようこそStackOverflow!この質問を改善するためのヒントについては、http://stackoverflow.com/help/how-to-askをご覧ください。特に、問題を解決するためのコードを含める必要があります。私たちは、短期間のプログラマが無料で働いているわけではありません。 あなたが含まれているタグがあれば、あなたの質問にはシェル、awk、sedコードがあると思うでしょう。 – ghoti

答えて

0

sedは、同じことをお手伝いします。私は理由のラインのスペースの最初の変更第二のスペースの後に;(セミコロン)に沿って非常に最初のスペースを代入し、再度;(セミコロン)で、非常に最初のスペースを変更しています

sed 's/ /;/1;s/ /;/1' Input_file 

今度は1番目のスペースになりますので、のsedコマンドで1番目のスペースだけを置く必要があります。

関連する問題