文件巨细可以有明显变革。按照事变的差异,拆分文件是有益的,就像split。根基用法如下:
- #我们拆分这个CSV文件,每500行支解为一个新的文件new_filename
-
- split -l 500 filename.csv new_filename_
-
- # filename.csv
- # ls output
- # new_filename_aaa
- # new_filename_aab
- # new_filename_aac
两个处所很稀疏:一个是定名方法,一个是穷乏扩展名。后缀约定可以通过-d标识来数字化。添加文件扩展名,你必要执行下面这个find呼吁。他会给当前文件夹下的全部文件追加.csv后缀,以是必要警惕行使。
- find . -type f -exec mv '{}' '{}'.csv ;
-
- # ls output
- # filename.csv.csv
- # new_filename_aaa.csv
- # new_filename_aab.csv
- # new_filename_aac.csv
有用的选项:
- split -b按特定字节巨细拆分
- split -a生生长度为N的后缀
- split -x行使十六进制后缀支解
SORT & UNIQ
前面的呼吁是显而易见的:他们凭证本身说的做。这两者提供了最重要的一击(即去重单词计数)。这是因为有uniq,它只处理赏罚一再的相邻行。因此在管道输出之前举办排序。一个风趣的工作是,sort -u将得到与sort file.txt | uniq沟通的功效。
Sort确实对数据科学家来说是一种很有效的小能力:可以或许按照特定的列对整个CSV举办排序。
- # Sorting a CSV file by the second column alphabetically
- sort -t"," -k2,2 filename.csv
- # Numerically
- sort -t"," -k2n,2 filename.csv
- # Reverse order
- sort -t"," -k2nr,2 filename.csv
这里的-t选项是指定逗号作为脱离符。凡是假设是空格或制表符。另外,-k符号是用来指定我们的键的。它的语法是-km,n,m是起始字段,n是最后一个字段。
有效的选项:
- sort -f 忽略巨细写
- sort -r 逆序
- sort -R 乱序
- uniq -c 计较呈现次数
- uniq -d 只打印一再行
CUT呼吁
cut用于删除列。举个栗子,假如我们只想要第一列和第三列。
- cut -d, -f 1,3 filename.csv
选择除了第一列以外的全部列
- cut -d, -f 2- filename.csv
与其他的呼吁组合行使,cut呼吁作为过滤器
- #打印存在“some_string_value”的第1列和第3列的前10行
- head filename.csv | grep "some_string_value" | cut -d, -f 1,3
找出第二列中独一值的数目。
- cat filename.csv | cut -d, -f 2 | sort | uniq | wc -l
- # 计较独一值呈现的次数,限定输出前10个功效
- cat filename.csv | cut -d, -f 2 | sort | uniq -c | head
PASTE
paste 是个风趣的小呼吁。假如你想归并两个文件,而这两个文件的内容又正好是有序的,那 paste 就可以这样做。
- # names.txt
- adam
- john
- zach
-
- # jobs.txt
- lawyer
- youtuber
- developer
-
- # Join the two into a CSV
-
- paste -d ',' names.txt jobs.txt > person_data.txt
-
- # Output
- adam,lawyer
- john,youtuber
- zach,developer
关于更多 SQL_-esque 变体,请看下面。
JOIN
Join是一种简朴的、准切向的SQL。最大的区别在于Join将返回全部列,匹配也许只产生在一个字段上。默认环境下,join将实行行使第一列作为匹配键。对付差异的功效,必要以下语法:
- # Join the first file (-1) by the second column
- # and the second file (-2) by the first
-
- join -t"," -1 2 -2 1 first_file.txt second_file.txt
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|