一、需求:
把這些資料庫檔案轉換成一行,然後用scp -r 一次性作拷貝。
二、執行個體
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<code>[root@mysql5 ~]</code><code># cat /tmp/1</code>
<code>ga_10122</code>
<code>ga_10589</code>
<code>ga_11053</code>
<code>ga_11238</code>
<code>ga_11559</code>
<code>ga_11944</code>
<code>ga_12193</code>
<code>ga_13542</code>
<code>ga_35179</code>
<code>ga_36013</code>
<code>ga_36063</code>
<code>ga_36575</code>
<code>ga_36737</code>
<code>ga_36926</code>
<code>ga_37962</code>
<code>ga_39596</code>
<code>ga_39599</code>
<code>ga_39603</code>
<code>ga_39604</code>
<code>ga_39605</code>
<code>ga_39608</code>
<code>ga_39609</code>
<code>ga_39610</code>
<code>ga_39614</code>
<code>ga_39618</code>
<code>ga_39619</code>
<code>ga_39622</code>
<code>ga_39625</code>
<code>ga_39626</code>
<code>ga_39630</code>
<code>ga_39633</code>
<code>ga_39636</code>
<code>ga_39639</code>
<code>ga_39640</code>
<code>ga_39642</code>
<code>ga_39645</code>
<code>ga_39648</code>
<code>ga_39652</code>
<code>ga_39654</code>
<code>ga_39657</code>
<code>ga_39668</code>
<code>ga_39675</code>
<code>ga_39687</code>
<code>ga_39690</code>
<code>ga_39691</code>
<code>ga_39693</code>
<code>ga_39695</code>
<code>ga_39697</code>
<code>ga_39702</code>
<code>ga_39703</code>
<code>ga_39704</code>
<code>ga_39708</code>
<code>ga_39715</code>
<code>ga_39717</code>
<code>ga_39724</code>
<code>ga_39725</code>
<code>ga_39727</code>
<code>ga_39728</code>
<code>ga_39730</code>
<code>ga_39732</code>
<code>ga_39738</code>
<code>ga_39741</code>
<code>ga_39743</code>
<code>ga_39753</code>
<code>ga_39757</code>
<code>ga_39761</code>
<code>ga_39765</code>
三、解決有三種
1、采用awk
<code>[root@mysql5 ~]</code><code># awk BEGIN{RS=EOF}'{gsub(/\n/," ");print}' /tmp/1</code>
<code>ga_10122 ga_10589 ga_11053 ga_11238 ga_11559 ga_11944 ga_12193 ga_13542 ga_35179 ga_36013 ga_36063 ga_36575 ga_36737 ga_36926 ga_37962 ga_39596 ga_39599 ga_39603 ga_39604 ga_39605 ga_39608 ga_39609 ga_39610 ga_39614 ga_39618 ga_39619 ga_39622 ga_39625 ga_39626 ga_39630 ga_39633 ga_39636 ga_39639 ga_39640 ga_39642 ga_39645 ga_39648 ga_39652 ga_39654 ga_39657 ga_39668 ga_39675 ga_39687 ga_39690 ga_39691 ga_39693 ga_39695 ga_39697 ga_39702 ga_39703 ga_39704 ga_39708 ga_39715 ga_39717 ga_39724 ga_39725 ga_39727 ga_39728 ga_39730 ga_39732 ga_39738 ga_39741 ga_39743 ga_39753 ga_39757 ga_39761 ga_39765</code>
awk預設将記錄分隔符(record separator即RS)設定為\n,此行代碼将RS設定為EOF(檔案結束),也就是把檔案視為一個記錄,然後通過gsub函數将\n替換成空格,最後輸出。
2、采用sed
<code>[root@mysql5 ~]</code><code># sed ':a ; N;s/\n/ / ; t a ; ' /tmp/1</code>
說明:sed預設隻按行處理,N可以讓其讀入下一行,再對\n進行替換,這樣就可以将兩行并做一行。但是怎麼将所有行并作一行呢?可以采用sed的跳轉功能。:a 在代碼開始處設定一個标記a,在代碼執行到結尾處時利用跳轉指令t a重新跳轉到标号a處,重新執行代碼,這樣就可以遞歸的将所有行合并成一行。
3、cat file | xargs
<code>[root@mysql5 ~]</code><code># cat /tmp/1 | xargs</code>
本文轉自 zouqingyun 51CTO部落格,原文連結:http://blog.51cto.com/zouqingyun/1877308,如需轉載請自行聯系原作者