問題

我有一個~23000行SQL轉儲,其中包含幾個值得資料的資料庫.我需要提取此檔案的某個部分(即單個數據庫的資料)並將其放在新檔案中.我知道我想要的資料的開始和結束行號.

有沒有人知道Unix命令(或一系列命令)從行16224和16482之間的檔案中提取所有行,然後將其重定向到新檔案?

  最佳答案

 sed -n '16224,16482p;16483q' filename > newfile
 

sed manual :

P- 打印出模式空間(到標準輸出)。這個命令通常只與 -n command-line 選項一起使用。

N - 如果不禁用自動列印,則列印模式空間,無論如何,將模式空間替換為下一行輸入.如果 然後sed退出沒有再處理任何輸入 命令。

問 題 - 退出 sed,不處理任何更多的命令或輸入。 請注意,如果沒有使用 -n 選項禁用自動列印,則會列印當前的模式空間。

sed指令碼中的地址可以使用以下任何形式:

數目 指定一個行號將只匹配輸入中的該行。

透過指定兩個地址可以指定地址範圍 以逗號(,)分隔.地址範圍與從 第一個地址匹配,並持續到第二個地址 地址匹配(包括)。

  相同標籤的其他問題

unixcommand-linesedtext-processing