sed写回文件|在linux命令行下如何将指定的几行内容写入到一个文件中

|

A. 在linux命令行下如何将指定的几行内容写入到一个文件中

Linux下可以用sed命令向文件中追加内容。

案例:把/etc/test1文件中1-10行内容写入到test2中

sed-n'1,10'p/etc/test1>>test2#将专file1的1-10行追加到file2

sed命令行格式为属:sed [-nefri] ‘command’ 输入文本

常用选项:-n∶使用安静(silent)模式;

-e∶直接在指令列模式上进行 sed 的动作编辑;

-f∶直接将 sed 的动作写在一个档案内;

-r∶sed 的动作支援的是延伸型正规表示法的语法;

-i∶直接修改读取的档案内容,而不是由萤幕输出。

B. shell脚本 将一个含特殊字符的变量,写入文件对应的位置中,使用sed要么写入的字符不正确要么就报错

假如SSID变量中没有&这个特殊符号,那么直接用sed是可以满足的

SSID='[email protected]#$%^*[}(/.*\/'sed-is,ssid=.*,ssid=$SSID,gfilename

但是如果有了专&符号,放到sed中会作为属特殊用途展开,导致保留了原来的匹配字符,写入的内容会不正确。

此时,只能换一种方式,用awk来操作字符串,然后重新写入到文件中,此时需要多一个临时文件

cpfilenamefilename1;awk'{gsub("^ssid=.*","ssid='$SSID'");print$0}'filename1>filename;rm-ffilename1

C. shell中,sed可以写入前面的数据流吗例如,cat一个文件,可不可以用sed把cat的内容写入到指定文件

用sed的a命令(append,附加到文件的指定行后)或 i命令(insert,插入到指定行前) str=`cat file1 | sed -n '3p'`line=3 # file2的指定行sed -i "${line} a$str" file2

D. 如何用sed命令往空文件中写入数据

sed是基于行来处理的文件流编辑器,如果文件为空的话,它是处理不了的!找了段英文的解释如下:Sed is a stream editor. A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline). While in some ways similar to an editor which permits scripted edits (such as ed), sed works by making only one pass over the input(s), and is consequently more efficient. But it is sed’s ability to filter text in a pipeline which particularly distin- guishes it from other types of editors. 大致情形就是:[email protected]~# cat file.txt // 里面没有内容 [email protected]~# touch file.txt // 新建一个空文件 [email protected]~# cat file.txt // 里面没有内容 [email protected]~# sed -i "\$a $var" file.txt // 往文件里面添加变量中的数据 [email protected]~# cat file.txt // 但文件里面还是没有内容 [email protected]~#

E. linux sed加什么参数写入原文件

-i 参数,则所有改动直接是对原文件 如果害怕直接改源文件出问题,可以用 -i.bak 这样,在修改的同时,原文件会被备份下来(加上 .bak 后缀)

F. Linux中的sed是什么意思呢,如何使用呢

Sed是一项Linux指令,全称是Stream EDitor,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大。Sed主要用于自动编辑一个或者多个文件,多用于脚本中对文件的处理。Sed命令可以对文件进行增加、删除、修改和查找操作,所以学好sed命令是写自动化脚本必须的基础之一。调用sed命令有两种形式:sed [options] 'command' file(s)sed [options] -f scriptfile file(s)sed命令主要选项-e command,–expression=command允许多台编辑。-h,–help打印帮助,并显示bug列表的地址。-n,–quiet,–silent取消默认输出。-f,–filer=script-file引导sed脚本文件名。-V,–version打印版本和版权信息。命令:a\在当前行后面加入一行文本。b label分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。c\用新的文本改变本行的文本。d 从模板块位置删除行。D 删除模板块的第一行。i\在当前行上面插入文本。h拷贝模板块的内容到内存中的缓冲区。H 追加模板块的内容到内存中的缓冲区。g 获得内存缓冲区的内容,并替代当前模板块中的文本。G 获得内存缓冲区的内容,并追加到当前模板块文本的后面。l 列表不能打印字符的清单。n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。p 打印模板块的行。P 打印模板块的第一行。q 退出Sed。r file从file中读行。t labelif分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。T label错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。w file写并追加模板块到file末尾。W file写并追加模板块的第一行到file末尾。! 表示后面的命令对所有没有被选定的行发生作用。s/re/string 用string替换正则表达式re。= 打印当前行号码。# 把注释扩展到下一个换行符以前。

G. 在linux中给一个文本文件写内容的方法(三种)

linux下更改来文件的方法自有很多如果单说方法而不计较写入的手段的话可以说是多不胜数一般的手段包括使用文本编辑器法这种方法是最直接也是最直观的了比如使用vim、nano、gedit等等文本编辑器都可以对文件进行写入(前提是有相应的权限)另一种方法可以使用重定向的方法我们也可以使用重定向的方法将内容写入的文件内(同样的,前提是有相应的权限,即当前用户对该文件有写入权限)这个方法就是将文件的输出重定向到另一个文件平常的我们的输出都是输出在标准输出上的(屏幕),我们只需要将原本输出的标准输出的内容重定向到文件里就可以了比如使用cat、echo、head、tail等等命令,然后通过>或者>>将内容重定向到文件里,前都在写入时会将文本文件中的内容清除,后者则会在原有文本文件的未尾追加内容当然也可以使用像是sed这种程序来改写文件内容也可以使用tee这个命令在写文件tee可以将标准输入的内容写入到文件内总之linux上将内容写入文本文件的方法有很多种在不考虑自己动手写程序的情况下,平常的手段基本上就是这些了

H. 从linux指令的结果中过滤出需要的部分并写入指定文件

Linux下可以用sed命令向文件中追加内容。案例:把/etc/test1文件中1-10行内容写入到test2中12 sed-n'1,10'p/etc/test1>>test2#将file1的内1-10行追加到file2 sed命令行格式容为:sed[-nefri]‘command’输入文本常用选项:-n∶使用安静(silent)模式;-e∶直接在指令列模式上进行sed的动作编辑;-f∶直接将sed的动作写在一个档案内;-r∶sed的动作支援的是延伸型正规表示法的语法;-i∶直接修改读取的档案内容,而不是由萤幕输出。

I. sed命令的相关使用,求教高手~

sed可以通过-i选项指定要不要将修改写入原文件,或者如果修改原文件,要不要先备份!具体参数我是这样理解的:如果没有该选项,sed将输出送入标准输出。该选项使sed将输出送入原来的输入文件中,一旦指定了后缀名suffix了以后,sed将备份原来的输入文件,该备份文件名以原文件名后接suffix命令,如果想在原文件名和后缀suffix之间有一个句点,那么必须在后缀suffix中包含一个句点,-i选项后面直接加备份文件后缀,-i和后缀之间没有空格。如果文件名需要特殊符号,必须要用反斜杠转义例如sed –n –i\ .bak –e ‘command’ txtfile或者sed –n –I’ .bak’ –e ‘command’ txtfile这样得到的备份名为txtfile口.bak就可以有空格了(这里我用口代表空格)。/ +++++++++++++++++++++++++++++++++++++++例子++++++++++++++++++++++++++++++sed.txt的内容如下(“^$”代表空行):This is the 1st line.This is the 2nd line.^$ This is the 3rd line.sed命令(#后面的文字表示注释):sed –n –i.bak -e '/^$/!{ #“/^$/!”是不要匹配空行,按回车键换行。>#i这里是要在当前行前添加<LS>>i \><LS>>#a这里是要在当前行后添加<LE>>;a \></LE>>;p>}' sed.txt 执行以后没有任何显示,是因为处理的结果输入写入到sed.txt,原来的内容已经备份到sed.txt.bak中了,cat一下:sed.txt的内容如下:<LS>This is the 1st line.</LE><LS>This is the 2nd line.</LE><LS>This is the 3rd line.</LE>Sed.txt.bak内容为(这里我用“^$”代表空行):This is the 1st line.This is the 2nd line.^$ This is the 3rd line./+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

J. 怎样将sed修改后的文件输出成文件

写入另一个文件不就行了,sed -n '/test/w file' example


赞 (0)