2017-05-30 18 views
-3

私は、次の行を含むファイルがあります。Linuxのbashシェルスクリプトソートライン

[172.16.50.134] 62825 
"/root/blz.txt" 62825 
[172.16.50.133] 62933 
"/home/Log/mail.log" 62933 
"/home/Log/log.txt" 62933 
[172.16.50.138] 67888 
"/home/Log/test.txt" 67888 

を、私は、次のフォーマットが必要です。私はLinuxのシェルスクリプトでこれを行うことができますどのように

[172.16.50.134] "/root/blz.txt" 
[172.16.50.133] "/home/Log/mail.log" 
[172.16.50.133] "/home/Log/log.txt" 
[172.16.50.138] "/home/Log/test.txt" 

を?
ありがとうございます。

+2

あなたは何を試してみましたか? –

+1

ようこそStackOverFlowへ。 @BrianAgnewが言ったように、あなたはすでにやったこととあなたが知っていることを示すべきです。ありがとう –

+0

これを見てください:https://stackoverflow.com/help/someone-answers – tso

答えて

0

使用のawk:

awk 'BEGIN{a=0;}/^\[/{printf "%s %s ",$1,$2; a=0; b=$1; c=$2; next;}{if(a==0) {print $1; a=1} else {print b,c,$1}}' filename 
+0

こんにちはtso、ありがとう。それは完璧に動作します。しかし、私は入力ファイルを変更しました.IPの後の行は、IPの後にユーザの例[172.16.50.134]のルート62825を持っています。出力[172.16.50.134] root "/root/blz.txt"動作しません。もう一度助けてもらえますか? – wolloc

+0

私は編集しました。これを見てください:https://stackoverflow.com/help/someone-answers – tso

関連する問題