2017-10-27 6 views
0

私はbashの中のいくつかのデータを解析していました。私はラインを一緒にマージする必要がありますので、次のようになります:bashの特定の行と行をマージする

70:54:D2:8D:82:9A 1 Internet 
... 

私はこれら3つのファイル出力を持っています。

マックアドレス:

70:54:D2:8D:82:9A 
F8:8E:85:84:4F:55 
F4:6D:04:B0:C2:18 
10:FE:ED:78:2A:44 

チャンネル番号:

1 
4 
1 
8 

とのSSID:

Internet 
ASUS 
Free-WiFi 
NetFree 

はそう簡単な方法はありますか?前もって感謝します。

EDIT:ここです

paste -d " " macs channels SSIds

...誰かがすでにhere

+1

マージの基礎は何ですか? 3つのファイルすべてに共通の列がありますか?もしそうなら、あなたは 'join'コマンドを試すことができます。 'paste'は行いますが、単純なマージはあなたが探しているものではないかもしれません。 – codeforester

+0

https://stackoverflow.com/questions/3806874/how-to-concatenate-two-files-line-bylineline-using-bash –

+0

の可能な複製「paste」は私が探していたものです –

答えて

1

この質問をしたようにあなたが一緒にファイルの行を追加するpasteコマンドを使用することができそうです完全な例...

echo "123" > 1 
echo "abc" > 2 
echo "@#$" > 3 
paste -d " " 1 2 3 

123 abc @#$ 

echo "456" >> 1 
paste -d " " 1 2 3 

123 abc @#$ 
456 

これで、行数が一致しない場合は、少し歪んだ出力が得られるので、行が1:1であることを確認することができます。

0
]$ paste 1.txt 2.txt 3.txt 
    70:54:D2:8D:82:9A 1 Internet 
    F8:8E:85:84:4F:55 4 ASUS 
    F4:6D:04:B0:C2:18 1 Free-WiFi 
    10:FE:ED:78:2A:44 8 NetFree 
関連する問題