如何删除文件中标记为“0”的空格&引用;不删除我的数字中的小数点?(Bash shell)
我有一个文件如下所示:如何删除文件中标记为“0”的空格&引用;不删除我的数字中的小数点?(Bash shell),bash,shell,sed,Bash,Shell,Sed,我有一个文件如下所示: 18 29 293.434 12 32 9954.343 12 343 . 12 45 9493.545 我想使用sed将第3行中的“.”替换为“0” 如果不替换文件中的每一个小数位,我就想不出如何执行此操作 任何帮助都将不胜感激。如果我理解清楚,如果圆点在末尾,请删除空格并用0替换此圆点: sed '/\.$/{s/ //g;s/\.$/0/}' file # ^ $是一个锚点,它意味着在该行的末尾 如果我理解得很好,如果点在末尾,请删除空格并用0
18 29 293.434
12 32 9954.343
12 343 .
12 45 9493.545
我想使用sed将第3行中的“.”替换为“0”
如果不替换文件中的每一个小数位,我就想不出如何执行此操作
任何帮助都将不胜感激。如果我理解清楚,如果圆点在末尾,请删除空格并用0替换此圆点:
sed '/\.$/{s/ //g;s/\.$/0/}' file
# ^
$
是一个锚点,它意味着在该行的末尾
如果我理解得很好,如果点在末尾,请删除空格并用0替换此点:
sed '/\.$/{s/ //g;s/\.$/0/}' file
# ^
$
是一个锚点,它意味着在该行的末尾
使用GNU时:
sed 's/\B\.\B/0/g' file
输出:
18 29 293.434
12 32 9954.343
12 343 0
12 45 9493.545
18 29 293.434
12 32 9954.343
12 343 0
12 45 9493.545
请参阅:使用GNU时:
sed 's/\B\.\B/0/g' file
输出:
18 29 293.434
12 32 9954.343
12 343 0
12 45 9493.545
18 29 293.434
12 32 9954.343
12 343 0
12 45 9493.545
请参阅:在每个UNIX框的任何shell中使用任何awk,并假设您希望将
替换为0
,无论它在任何字段中单独出现,而不仅仅是在第三行输入的最后一个字段中:
awk '{for (i=1; i<=NF; i++) if ($i == ".") $i=0} 1' file
awk'{for(i=1;i在每个UNIX框的任何shell中使用任何awk,并假设您希望将
替换为0
,无论它在任何字段中单独出现,而不仅仅是在第三行输入的最后一个字段中:
awk '{for (i=1; i<=NF; i++) if ($i == ".") $i=0} 1' file
awk'{for(i=1;我能发布预期的输出吗?标题和描述之间似乎不匹配…你能发布预期的输出吗?标题和描述之间似乎不匹配…对于那些想要符合posix标准的解决方案的人,也许是sed-E/(^ |[:space:]])[。]([[:space:].$)/\10\2/g'文件
?对于那些想要兼容posix的解决方案的人来说,也许是sed-E的/(^[space:][space:][])[。]([[space:][]|$)/\10\2/g'文件
?