2013-02-20 64 views
2

我有這樣一個文件(在第一列數字是行號)如何打印兩個號之間的文本到一個新文件在UNIX

30.<unit id=20> 
31.... 
32.</unit> 
33.<unit id=40? 
34.... 
35.</unit> 
36<unit id=20> 
37... 
38.</unit> 
39.<unit id=40? 
40.... 
41</unit> 

我想兩個行號之間的打印線,說32和39.我怎麼能在Unix中完成這個任務?
我是新來的unix。 注意:我不想要perl腳本。

+2

哪個Shell?你有什麼嘗試? – gpojd 2013-02-20 15:03:29

回答

0

使用sed

sed -n '/^32/,/^39/p' file 
+0

謝謝。現在有一點變化。考慮我不必手動輸入行號。我有一個文件是這樣的: 13 | 20 35 | 45 75 | 96 546 | 633 我需要在一個新的文件中讀取該文件的行號的腳本和他們每個人。 謝謝。 – Siva 2013-02-23 13:10:20

+0

@Siva - Upvote你喜歡這個問題的答案。將其中一個標記爲最合適的答案(綠色複選標記),然後發佈一個新問題 – 2013-02-23 13:17:51

+0

這不知何故無法通過最高票數工作回答 – frazras 2015-10-22 17:53:01

8

另一個與sed的方式:

sed -n '32,39p' filename 
+0

謝謝。現在有一點變化。考慮我不必手動輸入行號。我有一個文件是這樣的: 13 | 20 35 | 45 75 | 96 546 | 633 我需要在一個新的文件中讀取該文件的行號的腳本和他們每個人。 謝謝。 – Siva 2013-02-23 13:10:59

1
sed -n '32,39p' input > output 

注意,這忽略了你的行號,並只簡單的打印線32至39。如果你想匹配的字符串,使用Fredrik提出的解決方案。

+0

謝謝。現在有一點變化。考慮我不必手動輸入行號。我有一個文件是這樣的: 13 | 20 35 | 45 75 | 96 546 | 633 我需要在一個新的文件中讀取該文件的行號的腳本和他們每個人。 謝謝。 – Siva 2013-02-23 13:08:03

0

我想你應該試試這個

sed '32,39!d' input > output 
+0

請爲您的答案添加一些解釋。 – DontVoteMeDown 2014-11-25 10:50:56

相關問題