Bash-shell替换特定列之间的分隔符

时间:2017-12-04 05:58:25

标签: shell awk sed

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

使用分号替换第2列之间的第1列中的空格分隔符和第3列之间的第2列。 file2是输出。

1 个答案:

答案 0 :(得分:0)

关注sed可能对您有帮助。

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

我用;(半冒号)替换第一行中的第一个空格,然后再用;(半冒号)更改第一个空格,因为在第一次更改空格后第二个空格现在成为第一个空格,所以我们只需要在/1命令中执行sed来放置第一个空格。