我有那个文本#!/usr/bin/env python
,我想python
用python3
(没有正则表达式)替换,但我想确保这个文本在行尾。
我试过这个命令:
sed -i 's/python\n/python3\n/g' a.txt
但它不会替换文本。我确保在python
0x0a (\n)之后使用十六进制转储
请问我能做什么?
我有那个文本#!/usr/bin/env python
,我想python
用python3
(没有正则表达式)替换,但我想确保这个文本在行尾。
我试过这个命令:
sed -i 's/python\n/python3\n/g' a.txt
但它不会替换文本。我确保在python
0x0a (\n)之后使用十六进制转储
请问我能做什么?
使用
$
不\n
匹配行尾:您不需要
g
修饰符(每行只能有一个行尾),但您可能希望将替换限制在文件的第一行或以 开头的行#!
:默认情况下,sed 逐行读取其输入,因此换行符本身永远不会包含在模式缓冲区中。但是,
$
是表示行尾的正则表达式锚。查看sed 的工作原理