Unix 替换文件中所有出现的字符串

Unix 替换文件中所有出现的字符串,unix,Unix,我正在生成许多带有数字字段的文件。所有字段都以结尾。比如1234。 我需要将所有文件中出现的“,”替换为“,”,假设所有文件都在同一目录中,并且您正在使用支持-I(inplace)选项的新ishgnu-sed,您可以这样做 cd /path/to/dataDir for file in * ; do sed -i 's/\([0-9]\)\.,/\1./g' "$f" done 如果您使用的是Mac OSX,您可以向-i选项提供文件扩展名,如 sed

我正在生成许多带有数字字段的文件。所有字段都以结尾。比如1234。
我需要将所有文件中出现的“,”替换为“,”,假设所有文件都在同一目录中,并且您正在使用支持
-I
(inplace)选项的新ish
gnu-sed
,您可以这样做

   cd /path/to/dataDir
   for file in * ; do
      sed  -i 's/\([0-9]\)\.,/\1./g' "$f"
   done
如果您使用的是Mac OSX,您可以向
-i
选项提供文件扩展名,如

      sed -i".bak" ....
或用“覆盖现有”指示

如果您处于供应商提供的unix环境中,则可能需要自己管理输出。然后,您可以将内部循环替换为

      sed s/\([0-9]\)\.,/\1./g' "$f" > "$f".new && /bin/mv "$f".new "$f"

IHTH

你的意思是在你的数据字段周围有一些简单的单引号字符吗?你能在你的问题中包括一个输入数据样本、一个预期输出样本,以及迄今为止你为自己解决问题而编写的任何代码吗?
      sed s/\([0-9]\)\.,/\1./g' "$f" > "$f".new && /bin/mv "$f".new "$f"