我似乎不记得如何使用通配符函数替换文档中的勾号。
这是data.txt:
+40 46'N + 014 15'E
+21 17'N -157 52'W
我想用 S 替换 ' 之后的所有内容。当我尝试时,sed 命令给了我错误:
sed 's/'.*/S/g' data.txt > new.txt
似乎搜索蜱并替换它们是 sed 的问题?任何帮助深表感谢。
尝试逃避它:
sed 's/'\''.*/S/g' data.txt > new.txt
或者使用双引号
sed "s/'.*/S/g" data.txt > new.txt
试试这一行:
sed "s/'.*/S/" file
或者
sed 's/\x27.*/S/' file
避免转义单引号。
PS你不需要g
旗帜。
有时引用'
是不够的。你应该把它放在[]
.
sed "s/['].*/S/" data.txt
示例输出:
+40 46S
+21 17S
如果您实际上仅指之后的所有内容,则可以这样做:
sed "s/^\([^']*[']\).*/\1S/" data.txt
示例输出:
+40 46'S
+21 17'S
如果您只指每个实例旁边的字母:
sed "s/\([']\)[^[:space:]]\+/\1S/g" data.txt
输出:
+40 46'S + 014 15'S
+21 17'S -157 52'S