适用于Linux命令的10个R函数

由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接。

这篇文章将介绍 10 个不同的 Linux 命令及其 R 实现方法。 如果您有兴趣学习更多 R 函数来处理文件的方法,请参考《R: HOW TO CREATE, DELETE, MOVE, AND MORE WITH FILES》。

列出目录中的所有文件

07e1001d-fbe7-43d7-bbe9-eb9d5cb5a997.png

R 实现:

list.files("/path/to/directory")
list.files("/path/to/do/directory", recursive = TRUE)

# search for files containing "something" in their name
list.files("/path/to/do/directory", pattern = "something")

# search for all CSV files
list.files("/path/to/do/directory", pattern = ".csv")

Linux 实现:

ls /path/to/directory
ls -R /path/to/directory

# search for files containing "something" in their name
ls /path/to/directory | grep "something"

# search for all CSV files
ls /path/to/directory | grep ".csv"


获取文件前几行记录

906de834-2306-4197-b6c6-ca4b89b27a15.png

R 实现:

# let df be a data frame
head(df)
head(df, 10)

Linux 实现:

head -6 some_file.txt
head -10 some_file.txt


获取当前目录

8b2db2d9-e172-4aca-a0a2-551ca642921b.png

R 实现:

getwd()

Linux 实现:

pwd


更改目录

5f77851a-a0cd-4651-b299-b2cffd1628b7.png

R 实现:

setwd("/path/to/new/directory")

Linux 实现:

cd /path/to/new/directory


统计目录中的文件数

a8e10d00-99ab-4546-9e31-d1e188a724f6.png

R 实现:

length(list.files("/path/to/some/directory"))

Linux 实现:

ls -1 | wc -l


检查文件权限

5650d675-faa4-4bdd-9681-890d59e51bfd.png

R 实现:

file.info("/path/to/directory/file.txt")

file.info 返回除文件权限之外的文件的其他信息,包括大小,创建时间,上次修改时间和上次访问时间。 如果您只想获得该文件的权限,请运行以下命令:

file.info("/path/to/directory/file.txt")$mode

权限以八进制(octal)形式返回; 将此八进制结果转换为读/写等功能,请参阅此链接。其实也就是 Linux 中的 rwx 权限。 

d909c9af-0288-42d5-87e5-d9601dedfeb8.png

Linux 实现:

ls -l /path/to/directory/file.txt


创建新目录

4f46fce4-2e84-4192-ae20-5246163babbe.png

R 实现:

# create folder in current directory
dir.create("new_folder")

#
create folder in different directory
dir.create("/path/to/new_directory")

Linux 实现:

# create folder in current directory
mkdir new_folder

#
create folder in different directory
mkdir /path/to/new_directory


创建新文件

b1824a84-9e57-4e3d-9d5a-8a0a3cb326fd.png

R 实现:

# create a file in current directory
file.create("new_file.txt")

# create file in different directory
file.create("/path/to/directory/new_file.txt")

Linux 实现:

# create a file in current directory
touch new_file.txt

#
create file in different directory
touch /path/to/directory/new_file.txt


计算文件中的行数,单词数和字符数

虽然使用 base R 也可以获得文件中的行数,字数和字符数,但使用 hyperSpec 程序包可以更简单。

# R 中安装 hyperSpec 包
install.packages("hyperSpec")

运行下面的代码行将打印出一个数据框,其中包含输入文件中的字符,单词和行数。 同样,Linux wc 命令将打印出文件的相同信息。 

07f4da7f-7195-432f-9d68-9dee0eed84b2.png

R 实现:

library(hyperSpec)
wc("/path/to/directory/file.txt")

Linux 实现:

wc /path/to/directory/file.txt


文件拷贝

8231538a-083e-4a57-8e49-554521dbcee4.png

R 实现:

# copy file.txt to new_directory
file.copy("/path/to/directory/file.txt", "/path/to/new_directory")

Linux 实现:

# option 1
cp /path/to/directory/file.txt /path/to/new_directory

# option 2
cp /path/to/directory/file.txt /path/to/new_directory/file.txt

96bd78ce-002d-4c37-9e3b-5180a0e843cb.gif

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

posted @ 2018-12-16 17:44  章鱼猫先生  阅读(93)  评论(0编辑  收藏  举报