-1
A
回答
1
perl有一個tr
(translate)運算符,該運算符返回發生的轉換次數。我們可以使用它來計算字符串中的子字符串。
cat file.txt | perl -ne 'print if tr/,// > 5'
+0
或者,如果你喜歡高爾夫,如果tr /,//> 5'file.txt',則'perl -ne'打印 – Hambone
0
使用egrep的:
egrep '([^,]*,){6,}'
用awk:
awk -F, 'NF>5{print}'
使用一個sed它有一個 「擴展正則表達式選項」(我將在這裏假設-r,但它可以是-E):
sed -n -r -e '/([^,]*,){6,}/p'
當然,你必須小心你所要求的。例如,如果您的CSV文件中包含嵌入「值」的逗號,並且如果您只想要多於五個「值」的行,那麼對於不支持CSV的工具而言,事情會變得棘手。
0
圖像中的文字看起來像CSV。 然後,使用AWK ...
awk -F'","' 'NF>5{print}'
像峯的上述答案。
0
我想你已經在這裏有你的原始問題的答案。然而,如果你真正要問的是如果你想查找有多少行CSV 字段超過5,那麼我認爲你需要像Perl的Text::CSV
模塊。
這方面的一個例子是以下字符串:
one,two,three,four,five,"six,seven"
這有六個逗號,但只有五場。你想看到這一行,還是想跳過它?如果你想看到它(作爲一個例外 - 一個包含5個以上逗號的行),然後使用已經建議的方法之一。
如果你沒有,那麼你真的想要一個CSV分析器和Perl的是相當不錯的 - 比大多數語言更輕便,更容易,在我看來:
use strict;
use Text::CSV;
my $csv = Text::CSV->new ({ binary => 1 });
open my $IN, "<:encoding(utf8)", "file.csv" or die;
while (my $row = $csv->getline($IN)) {
if (@$row > 5) {
$csv->combine(@$row);
print $csv->string(), "\n";
}
}
close $IN;
相關問題
- 1. egrep輸出顯示符號
- 2. 提取數字的awk/egrep的
- 3. 使用egrep的
- 4. Windows中的EGREP和AWK等效命令
- 5. 查詢使用AWK/egrep的提取特定字符串
- 6. 我如何提取使用egrep的
- 7. 在空文件上顯示和/或使用awk FILENAME
- 8. 使用SED或AWK
- 9. 使用grep或AWK
- 10. 如何使用egrep正則表達式?
- 11. Bash/Awk:如何使用bash或awk運行命令
- 12. 如何顯示2行1使用grep,awk和更
- 13. egrep的:無與倫比(或\(
- 14. 如何顯示或使用JavaScript
- 15. AWK顯示變量
- 16. 如何使用AWK
- 17. 如何使用awk
- 18. 如何使用awk
- 19. 如何在使用sed或awk或grep的嵌套括號之間顯示文本?
- 20. 無法使用AWK或貓
- 21. 使用AWK或Perl轉置
- 22. 使用顯示或顯示在JavaScript
- 23. 如何使用grep或awk或sed ..根據模式打印值?
- 24. 如何使用sed或awk去掉一組行或塊?
- 25. 如何使AWK
- 26. 在egrep中使用OR
- 27. 如何提取與特定的柱,使用AWK線或sed的
- 28. awk - 顯示文件名稱
- 29. 如何使用awk在文本文件中顯示某些特定的字段?
- 30. 如何使其顯示NULL或不空?
請張貼相關的例子輸入和輸出以文本格式。發佈你的嘗試(和錯誤)也使你的問題更好! – andlrc
你好。請參閱[問]什麼是一個很好的問題。具體而言 - 鏈接到瞬態非現場圖像作爲您提出問題的基礎並不會對未來的網站用戶有所幫助。嘗試自己解決問題通常也是一個好主意,然後具體說明您遇到問題的位置。 – Sobrique