使用sed检索和修改文件中的单行

乌里克

我有一个bash脚本,需要注释掉文件中的第一个非注释行并显示它,如下所示:

env=$(grep -v -m 1 "#" file)
if [ "$env" != "" ]
then
    sed -i "/\<$env\>/s/^/#/" file
fi
echo $env

这就变成了:

#this is an example file
this is the first line
this is the second line

变成这个:

#this is an example file
#this is the first line
this is the second line

并与此相呼应 this is the first line

我相信,有一种更简单,规范的方法可以做到这一点,也许只使用sed即可。使其成为单行代码会很方便,因为它实际上是通过ssh执行的。另一方面,通过ssh执行会导致在sed参数中扩展环境变量的问题,并且使用sscape进行转义是\\\$env行不通的。任何建议,我们将不胜感激。

hek2mgl

正如您已经建议的那样,您只能使用sed

sed '0,/^[^#]/ s/^[^#].*/#\0/' file.txt

上面的sed命令适用于从文件的第一行到第一个未注释的行的范围。在此范围内,它将用替换未注释行的开头#因为该范围仅适用于第一条未注释的行,所以仅此行将被注释。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 fgets 和 strtok 从文件中的单行检索单词

使用bash单行sed中的python2.7,perl搜索和替换ini文件中的项目

使用sed修改xml文件

使用awk或sed修改文件

在单行命令中使用grep-awk和sed会导致“无此文件或目录”错误

使用sed或类似方法修改文件中的行

使用 sed 复制和修改 bash 中的单词

从查询中检索单行

从远程服务器的 json 文件中检索值,然后使用 sed 替换大写、双引号和空格

使用sed脚本从文件中删除“ <<”和“ >>”

如何删除单行txt文件的行尾符号(使用sed/awk)?

Grep,Sed ... Awk修改文件中的行

使用单行对象结构检索android中的JSON

如何在sed中修改单行的一部分

如何使用StreamXmlRecordReader解析单个文件中的单行和多行xml记录

使用 .txt 文件中的 sed 将行合并为一个没有“空格”的巨大单行

使用 sed 或 awk 在单行中打印多个键值对

当文件中的字符串匹配时,如何使用 sed 修改行的最后 2 位数字

我需要使用sed而不是所有行来修改ksh脚本中的文件吗?

使用sed或awk修改文件中符合两个条件的行

使用sed修改目录中的所有文件并相应地命名输出

如何使用sed(或awk或perl单行代码)从文件A中的特定列获取值,并使用它来查找文件B中的行?

使用sed在配置文件中查找和更改信息

使用find和sed递归地在文件中包含{}的行

使用sed删除文件中的换行和空格顺序

如何使用 awk 和 sed 读取 JSON 文件中的列表

使用sed和awk编辑文件中的行

如何使用“ sed”在tsv文件中查找和替换值?

使用sed删除文件名中的空格和括号