据我所知,sed
是一个操作文本文件的命令。
从我的谷歌上看,-i
似乎意味着对文件本身执行操作,这是正确的吗?
那'1d'
呢?
发布于 2016-01-20 10:16:33
在sed
中:
-i
选项将就地编辑输入文件。'1d'
将删除输入文件的第一行。% cat file.txt
foo
bar
% sed -i '1d' file.txt
% cat file.txt
bar
请注意,大多数情况下,在使用-i
选项时进行备份是个好主意,以便在发生意外更改时备份原始文件。
例如,如果您这样做:
sed -i.orig '1d' file.txt
原始文件将保留为file.txt.orig
,修改后的文件将为file.txt
。
发布于 2016-01-20 19:09:30
sed '1d' file.txt
打印file.txt
的内容;不包括第一行;打印到标准输出。
sed -i '1d' file.txt # GNU, NetBSD, OpenBSD
sed -i '' '1d' file.txt # FreeBSD, macOS
打印file.txt
的内容;排除第一行;返回到file.txt
中;覆盖原始内容。
sed -i.back '1d' file.txt
在进行更改之前,创建原始备份(如file.txt.back
)。除了使用FreeBSD sed
之外,后缀(此处为.back
)必须附加到-i
选项(在相同的参数中,-i
和.back
之间没有空格)。
sed '2d' file.txt
打印file.txt
的内容;不包括第二行;打印到标准输出。
(指定任何数字将删除相应的行)。
还与-i
标志兼容。
sed '1!d' file.txt
打印file.txt
的内容;除去第一行之外的所有内容;打印到标准输出。
(换句话说,只打印第一行)。
还与-i
标志兼容。
sed '$d' file.txt
打印file.txt
的内容;不包括最后一行;打印到标准输出。
还与-i
标志兼容。
发布于 2016-01-20 10:31:16
在sed -h
中有:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
和“对文件执行它自己的操作。”绝对是.
man
说:“Sed是流编辑器。流编辑器用于对输入流(文件或管道输入)执行基本文本转换。”
作为你的问题,
sed -i '1d' file_name
方法:删除文件"file_name"
中的第一行,并备份到文件中。(就像编辑文件和直接删除第一行一样。)
https://unix.stackexchange.com/questions/256494
复制相似问题