我想從文本文件中提取包含確切字符數的行。我嘗試了colrm,但它沒有達到我想要的結果並排除了非字母數字符號。任何人都可以使用sed來做到這一點?我是新來的sed,但我仍然在閱讀......感謝您的任何建議。精確數量的字符串提取行
回答
grep '^.{25}$'
只會返回只有25個字符的行,我想。
說明:
^ Start at beginning of string
.{25} match exactly 25 of any character
$ Up to the end of the string`
這在grep中更容易,然後sed。對於內聯編輯,Sed更好,當你只想出匹配的行時,grep更容易使用。 – 2013-03-08 04:30:21
@EricG我懷疑你的評論正在寫,就像我在編輯答案一樣,因爲我在點擊「提交」後發現了同樣的問題。我們的想法越過了網絡空間......但是錯過了逃脫的大括號。 – Floris 2013-03-08 12:55:33
下面是測試文件,對,我叫文件 「測試」 運行此:
1
11
123
1234
12345
55555
123456
666666
的grep
要使用5個字符只打印線請使用以下內容
cat test | grep '^.\{5\}$'
結果:
12345
55555
你需要逃跑的大括號的命令行,
sed的
cat test | sed '/^.\{5\}$/!d'
在sed中採用相同的正則表達式如上,但/!d
告訴sed不要刪除與此匹配的行。結果將與上述兩行相同。
AWK
大括號可以在AWK的一些版本引起的問題,並且可能需要所不具備的標誌。這裏有一個用awk做的基本方法
cat test | awk '{ if (length($0) == 5) print $0}'
ahhhh ...擊中了現場...感謝Eric ...即使包含了一些符號和特殊字符,但仍然在閱讀教程中如何排除這些符號和特殊字符,它仍然有效..再次感謝 – user2147008 2013-03-08 04:46:26
什麼字符你想排除?你可以使用一個特殊的字母類而不是'''修飾,也許像'[a-zA-Z0-9]''。如果您使用一些示例行編輯您的問題,並且應該排除該行,我們可以提供幫助。這聽起來像你的源文件可能有控制字符。 – 2013-03-08 05:00:49
哦,對不起。無論如何,我已經找到並管理搜索我想要的任務.. sed's/^> //'輸入文件,但您的建議,以取代。與[a-zA-Z0-9]相比更容易理解...... – user2147008 2013-03-08 05:55:23
- 1. 提取精確的字符串
- 2. 從字符串中提取精確的字母
- 3. 用精確的字符串替換字符串變量
- 4. 如何從文本文件中提取精確的字符串
- 5. 精確匹配字符串的提取索引
- 6. 從字符串中提取數字(如整數或雙精度)
- 7. 精確匹配字符串
- 8. 在字符串數組中搜索精確的字符串?
- 9. 提取數字並從字符串中提取一個雙精度值
- 10. 可能會損失精度;從字符串中提取字符
- 11. PostgreSQL的尋找到字符串包含精確的字符串
- 12. 在php的精確字符串替換
- 13. Powershell替換精確的字符串
- 14. Lucene - 精確的字符串匹配
- 15. 的.htaccess精確匹配字符串
- 16. 其中包含精確的字符串
- 17. 提取特定字符串變量之間的字符串
- 18. 提取字符串的字符串值
- 19. 提升精神 - 提取列表爲單個字符串
- 20. 提取字符串中的數字
- 21. ORA-01422:精確提取返回的請求數量超過請求的行數
- 22. 獲取文本塊的精確字符
- 23. 提取獨特的精確串上的數據幀列匹配
- 24. 提取字符串
- 25. 提取字符串
- 26. 提取字符串
- 27. 提取字符串
- 28. 提取字符串
- 29. 提取字符串
- 30. 提取字符串
是否有語言偏好? – aqua 2013-03-08 04:19:09