在每行末尾附加特定字符
Append specific caracter at the end of each line
我有一个文件,我想将特定文本 [=11=]A
附加到其每一行的末尾。
我使用了这个命令,
sed -i s/$/[=10=]A/ file.txt
但这不适用于反斜杠 [=11=]A
。
您的命令应该通过简单地将 s/$/[=12=]A/
括在单引号 ('
) and 中来修复反斜杠(带有另一个反斜杠):
sed -i 's/$/\0A/' file.txt
请注意周围的 '
保护该字符串不被 shell 处理 ,但是bashslash 仍然需要转义以保护它 不受 SED 本身的影响。
显然,如果转义足够多,仍然可以避免使用单引号:
sed -i s/$/\\0A/ file.txt
在这种情况下,没有单引号来保护字符串,因此我们需要在 shell 中写入 \
以使用 \
获取 SED,但我们需要两个那些 \
,即 \\
,因此 SED 由 \
提供,这是一个转义的 \
.
显然移动,我永远不会建议第二种选择。
在其默认操作中,sed
循环将输入中的一行(不包括终止 字符)附加到 sed 的模式 space 中。
OP 想要使用 sed
在行尾附加字符 [=13=]A
。这是 字符的十六进制表示(参见 http://www.asciitable.com/)。因此,从这个角度来看,OP 尝试将 space 个文件加倍。这可以使用以下方法轻松完成:
sed G file
G
命令,在模式 space 后附加一个换行符,后跟保留 space 的内容。由于 hold space 始终为空,因此它只是将换行符附加到模式 space。 sed
的默认操作是打印该行。所以这只是双space一个文件。
我有一个文件,我想将特定文本 [=11=]A
附加到其每一行的末尾。
我使用了这个命令,
sed -i s/$/[=10=]A/ file.txt
但这不适用于反斜杠 [=11=]A
。
您的命令应该通过简单地将 s/$/[=12=]A/
括在单引号 ('
) and 中来修复反斜杠(带有另一个反斜杠):
sed -i 's/$/\0A/' file.txt
请注意周围的 '
保护该字符串不被 shell 处理 ,但是bashslash 仍然需要转义以保护它 不受 SED 本身的影响。
显然,如果转义足够多,仍然可以避免使用单引号:
sed -i s/$/\\0A/ file.txt
在这种情况下,没有单引号来保护字符串,因此我们需要在 shell 中写入 \
以使用 \
获取 SED,但我们需要两个那些 \
,即 \\
,因此 SED 由 \
提供,这是一个转义的 \
.
显然移动,我永远不会建议第二种选择。
在其默认操作中,sed
循环将输入中的一行(不包括终止
OP 想要使用 sed
在行尾附加字符 [=13=]A
。这是
sed G file
G
命令,在模式 space 后附加一个换行符,后跟保留 space 的内容。由于 hold space 始终为空,因此它只是将换行符附加到模式 space。 sed
的默认操作是打印该行。所以这只是双space一个文件。