用bash補文字檔中空位 - Linux

By Carol
at 2015-03-11T23:51
at 2015-03-11T23:51
Table of Contents
※ 引述《zyxwvoklove (天行者)》之銘言:
> 1234 1.00 0.44 521
> 2348 123
> 0897 0.92 0.12 886
> 2111 0.23 0.38 589
> ---
> 1234 1.00 0.44 521
> 2348 0 0 123
> 0897 0.92 0.12 886
> 2111 0.23 0.38 589
> 請問這要用awk的什麼寫出
> 還是其他command??
我覺得是可以用awk做出來沒錯,但你說不定拿ruby, python寫比較方便..XD
不過我在試的時候遇到一個問題:
> 應該是align好的
> 因為我用awk '{print $2,$3}' filename
> 就print出
> 1.00 0.44
>
> 0.92 0.12
> 0.23 0.38
我照你給得測資是不會有這個結果得,但如果其實是長這樣:
1234\t1.00\t0.44\t521
2348\t \t \t123
0897\t0.92\t0.12\t886
2111\t0.23\t0.38\t589
這樣我就可以用這樣得command拿到:
cat test.in|awk 'FS="\t" {print $2,$3}'
1.00 0.44
0.92 0.12
0.23 0.38
所以你需要得command應該只要:
cat test.in|awk 'FS="\t" {print $1, ($2!=" ")?$2:0, ($3!=" ")?$3:0, $4}'
還是要回到你的檔案才會知道該怎麼做...
--
> 1234 1.00 0.44 521
> 2348 123
> 0897 0.92 0.12 886
> 2111 0.23 0.38 589
> ---
> 1234 1.00 0.44 521
> 2348 0 0 123
> 0897 0.92 0.12 886
> 2111 0.23 0.38 589
> 請問這要用awk的什麼寫出
> 還是其他command??
我覺得是可以用awk做出來沒錯,但你說不定拿ruby, python寫比較方便..XD
不過我在試的時候遇到一個問題:
> 應該是align好的
> 因為我用awk '{print $2,$3}' filename
> 就print出
> 1.00 0.44
>
> 0.92 0.12
> 0.23 0.38
我照你給得測資是不會有這個結果得,但如果其實是長這樣:
1234\t1.00\t0.44\t521
2348\t \t \t123
0897\t0.92\t0.12\t886
2111\t0.23\t0.38\t589
這樣我就可以用這樣得command拿到:
cat test.in|awk 'FS="\t" {print $2,$3}'
1.00 0.44
0.92 0.12
0.23 0.38
所以你需要得command應該只要:
cat test.in|awk 'FS="\t" {print $1, ($2!=" ")?$2:0, ($3!=" ")?$3:0, $4}'
還是要回到你的檔案才會知道該怎麼做...
--
Tags:
Linux
All Comments
Related Posts
關於網樂通刷機

By Kelly
at 2015-03-11T22:07
at 2015-03-11T22:07
CentOS 6.4截圖畫面全黑

By David
at 2015-03-11T15:36
at 2015-03-11T15:36
script如何執行外部程式?

By James
at 2015-03-11T12:30
at 2015-03-11T12:30
請問某套Linux Mint的選單圖示

By Jacky
at 2015-03-11T10:14
at 2015-03-11T10:14
微型電腦的斷電問題

By Puput
at 2015-03-10T22:50
at 2015-03-10T22:50