2016-07-22 47 views
-2

我的文件中有多行並且想要合併第一行和第二行,依此類推。考慮將________作爲第二行中的空格。想通過從第二行中刪除開始空間來合併兩行

u_pcrd_logic/CTS_ccl_INV_clk_G1_L17_206           
________________________________2.001e+08  2.001e+08 0.0001773 0.001871 2.427e-07 0.002048  0.02934 INV_X6N_A9TL_C16 

RC_CG_HIER_INST353/RC_CGIC_INST             
______________________________2.001e+08  2.001e+08 0.0004888 0.001523 4.51e-07 0.002012  0.02882 PREICG_X6R_A9TL_C16 

預期輸出:

u_pcrd_logic/CTS_ccl_INV_clk_G1_L17_206  2.001e+08  2.001e+08 0.0001773 0.001871 2.427e-07 0.002048  0.02934 INV_X6N_A9TL_C16 

RC_CG_HIER_INST353/RC_CGIC_INST  2.001e+08  2.001e+08 0.0004888 0.001523 4.51e-07 0.002012  0.02882 PREICG_X6R_A9TL_C16 

感謝。

+1

你知道的[vi.se]的存在爲這些樣的問題呢?另外,請檢查[問]。 – fedorqui

+0

[編輯]您的問題,使用編輯器的{}'按鈕更正格式,並用空格替換所有不必要的空格替換字符。 –

回答

0

您可以使用以下spc.awk腳本:

# spc.awk script 

/^/{ #if the line starts with space 
    lines=lines $0 # add the current line to the former recorded lines 
    next 
} 
{ # for every other line ... 
    print lines # print the recorded lines 
    lines=$0 # record current line 
} 
END { print lines } # in the end print the last recorded lines 

然後使用命令:

awk -f spc.awk your_input_file 
+1

你是對的。我相應編輯。 –

0

又一awk

$ awk -v RS= -v ORS="\n\n" '{$1=$1}1' file 

u_pcrd_logic/CTS_ccl_INV_clk_G1_L17_206 2.001e+08 2.001e+08 0.0001773 0.001871 2.427e-07 0.002048 0.02934 INV_X6N_A9TL_C16 

RC_CG_HIER_INST353/RC_CGIC_INST 2.001e+08 2.001e+08 0.0004888 0.001523 4.51e-07 0.002012 0.02882 PREICG_X6R_A9TL_C16 

加入行,直到一個更多的空行(記錄中斷),打印一個多餘的空行。

1

隨着SED:

$ sed '$!N;/ *\n */s//  /;P;D' file 
u pcrd logic/CTS ccl INV clk G1 L17 206  2.001e+08  2.001e+08 0.0001773 0.001871 2.427e-07 0.002048  0.02934 INV X6N A9TL C16 

RC CG HIER INST353/RC CGIC INST  2.001e+08  2.001e+08 0.0004888 0.001523 4.51e-07 0.002012  0.02882 PREICG X6R A9TL C16 
相關問題