Sed如果在添加文件时以“ v”开头,则它会截断第一个字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sed如果在添加文件时以“ v”开头,则它会截断第一个字符相关的知识,希望对你有一定的参考价值。

我陷入了我的生产代码之一,试图在文件的开头附加一些内容,如果我要附加的内容以“ v”开头,则会被截断。

复制步骤:

$ cat text.txt
Kubernetes document
$ var1=version1
$ sed -e "s/^/\\${var1} /" text.txt

输出:

ersion1 Kubernetes document

所需的输出:

version1 Kubernetes document
答案

您使用反斜杠是错误的。检查此:

var1=version1
echo "s/^/\\${var1} /"

您的转义导致以下sed命令:

s/^/\version1 /

[\v是一个特殊的char:垂直选项卡,在终端上不可见。

简单的解决方案是根本不逃脱,将变量插值到双引号的字符串中根本不需要:

sed -e "s/^/\\${var1} /" text.txt

以上是关于Sed如果在添加文件时以“ v”开头,则它会截断第一个字符的主要内容,如果未能解决你的问题,请参考以下文章

1265 数据在几个值后截断第 1 行的列

如何避免:read.table 截断以 0 开头的数值

Shell 的sed和awk 工具

将sed截断x行组合成find命令

CentOS初步学习记录Wget文件下载和Sed文件处理

sed命令,搜索某个字符串,结果有多个匹配行,在第一个匹配行的前面添加一行内容