以下命令:
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)
上面代码的结构如何与这里的需求没有区别。我只是为上述关于空格的文本处理寻求一种轻量级的方法。如果以前已经问过这个,我深表歉意。我在查询中找不到它。
这应该工作:
sed 's/ \([^ ]\)/\1/g'
您还可以使用以下命令替换脚本的最后一行:
sed -n '1s/ \([^ ]\)/\1/gp' "$FILE"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句