我似乎无法记住如何使用通配符函数替换文档中的刻度。
这是data.txt:
+40 46'N + 014 15'E
+21 17'N -157 52'W
我想在'with S.之后替换所有内容。当我尝试时,sed命令会给我错误:
sed 's/'.*/S/g' data.txt > new.txt
似乎搜索刻度并替换它们是sed的问题?任何帮助深表感谢。
答案 0 :(得分:2)
尝试转义它:
sed 's/'\''.*/S/g' data.txt > new.txt
或使用双引号
sed "s/'.*/S/g" data.txt > new.txt
答案 1 :(得分:2)
试试这一行:
sed "s/'.*/S/" file
或
sed 's/\x27.*/S/' file
避免单引号。
P.S。您不需要g
标志。
答案 2 :(得分:2)
有时引用'
是不够的。您应该将其放在[]
。
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