首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sed -i '1d‘做什么?

sed -i '1d‘做什么?
EN

Unix & Linux用户
提问于 2016-01-20 10:13:38
回答 3查看 73.2K关注 0票数 43

据我所知,sed是一个操作文本文件的命令。

从我的谷歌上看,-i似乎意味着对文件本身执行操作,这是正确的吗?

'1d'呢?

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2016-01-20 10:16:33

sed中:

  • -i选项将就地编辑输入文件。
  • '1d'将删除输入文件的第一行。

示例:

代码语言:javascript
运行
复制
% cat file.txt 
foo
bar

% sed -i '1d' file.txt 

% cat file.txt        
bar

请注意,大多数情况下,在使用-i选项时进行备份是个好主意,以便在发生意外更改时备份原始文件。

例如,如果您这样做:

代码语言:javascript
运行
复制
sed -i.orig '1d' file.txt 

原始文件将保留为file.txt.orig,修改后的文件将为file.txt

票数 60
EN

Unix & Linux用户

发布于 2016-01-20 19:09:30

1.a)

代码语言:javascript
运行
复制
sed '1d' file.txt

打印file.txt的内容;不包括第一行;打印到标准输出。

2. a)

代码语言:javascript
运行
复制
sed -i    '1d' file.txt # GNU, NetBSD, OpenBSD
sed -i '' '1d' file.txt # FreeBSD, macOS

打印file.txt的内容;排除第一行;返回到file.txt中;覆盖原始内容。

2.b)

代码语言:javascript
运行
复制
sed -i.back '1d' file.txt

在进行更改之前,创建原始备份(如file.txt.back)。除了使用FreeBSD sed之外,后缀(此处为.back)必须附加到-i选项(在相同的参数中,-i.back之间没有空格)。

3.a)

代码语言:javascript
运行
复制
sed '2d' file.txt

打印file.txt的内容;不包括第二行;打印到标准输出。

(指定任何数字将删除相应的行)。

还与-i标志兼容。

3.b)

代码语言:javascript
运行
复制
sed '1!d' file.txt

打印file.txt的内容;除去第一行之外的所有内容;打印到标准输出。

(换句话说,只打印第一行)。

还与-i标志兼容。

3.c)

代码语言:javascript
运行
复制
sed '$d' file.txt

打印file.txt的内容;不包括最后一行;打印到标准输出。

还与-i标志兼容。

票数 18
EN

Unix & Linux用户

发布于 2016-01-20 10:31:16

sed -h中有:

代码语言:javascript
运行
复制
  -i[SUFFIX], --in-place[=SUFFIX]
             edit files in place (makes backup if SUFFIX supplied)

和“对文件执行它自己的操作。”绝对是.

man说:“Sed是流编辑器。流编辑器用于对输入流(文件或管道输入)执行基本文本转换。”

作为你的问题,

代码语言:javascript
运行
复制
sed -i '1d' file_name

方法:删除文件"file_name"中的第一行,并备份到文件中。(就像编辑文件和直接删除第一行一样。)

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/256494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档