使用sed自定义字符串空间

洋海

以下命令:

head -n 1 $FILE | tail -n 1

从的第一行提取文字$FILE每行的格式$FILE如下:

1 2 3 4  2 3  3 4 5  4 5 6 7 8 9

如您所见,每个字符都由一个空格分隔。每个组由两个空格分隔。使用sed我需要删除单个空格,并将双精度空格转换为单个空格。

中的文本$FILE是由嵌套在另一个for循环中的for循环创建的。因此,在嵌套运行后,每一行的文本数据都将从main for循环重定向>>$FILE该循环。文本字符串中的每个字符/数字都是嵌套for循环完成一次的结果。然后main for循环将嵌套的for循环的输出发送到$FILE

因此,伪代码的示例为:

for i in $(seq 1 $RANDOM)
do
    for n in {1..10}
    do
        $do_something
    done

$do_something_else
done >> $FILE

head -n 1 $FILE | tail -n 1 | (sed command here)

上面代码的结构如何与这里的需求没有区别。我只是为上述关于空格的文本处理寻求一种轻量级的方法。如果以前已经问过这个,我深表歉意。我在查询中找不到它。

Perreal

这应该工作:

sed 's/ \([^ ]\)/\1/g'

您还可以使用以下命令替换脚本的最后一行:

sed -n '1s/ \([^ ]\)/\1/gp' "$FILE"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章