Bash Sed通配符搜索勾选(';)并替换
我似乎不记得如何使用通配符函数替换文档中的勾号 下面是data.txt:Bash Sed通配符搜索勾选(';)并替换,bash,sed,Bash,Sed,我似乎不记得如何使用通配符函数替换文档中的勾号 下面是data.txt: +40 46'N + 014 15'E +21 17'N -157 52'W 我想用S替换'S'之后的所有内容。尝试时,sed命令会出错: sed 's/'.*/S/g' data.txt > new.txt 搜索蜱虫并替换它们似乎是sed的一个问题?非常感谢您的帮助 尝试转义它: sed 's/'\''.*/S/g' data.txt > new.txt 或者使用双引号 sed "s/'.*
+40 46'N + 014 15'E
+21 17'N -157 52'W
我想用S替换'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/g' data.txt > new.txt
或者使用双引号
sed "s/'.*/S/g" data.txt > new.txt
试试这句话:
sed "s/'.*/S/" file
或
避免跳转单引号
另外,您不需要使用g
标志。试试这句话:
sed "s/'.*/S/" file
或
避免跳转单引号
另外,您不需要使用
g
标志。有时引用“
是不够的。您应该将其放置在[]
之间
sed "s/['].*/S/" data.txt
示例输出:
+40 46S
+21 17S
+40 46'S
+21 17'S
如果你真的是指一切之后,你可以这样做:
sed "s/^\([^']*[']\).*/\1S/" data.txt
示例输出:
+40 46S
+21 17S
+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
有时引用
“
是不够的。您应该将其放置在[]
之间
sed "s/['].*/S/" data.txt
示例输出:
+40 46S
+21 17S
+40 46'S
+21 17'S
如果你真的是指一切之后,你可以这样做:
sed "s/^\([^']*[']\).*/\1S/" data.txt
示例输出:
+40 46S
+21 17S
+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
x27做什么?谢谢x27做什么?谢谢