【发布时间】:2021-07-25 17:16:09
【问题描述】:
我有需要拆分的文本;即,在行尾的两个字符后放置空格。从“4.20GB”你需要得到“4.20GB”。我知道可以使用sed、awk 等来完成,但我正在寻找一种轻量级且更跨平台的方法(适用于 Linux/Unix/BSD)。
是否可以使用bash 及其功能来做到这一点?出于某种原因,我认为 printf 可以做到,但快速检查并没有产生任何积极的结果。
【问题讨论】:
我有需要拆分的文本;即,在行尾的两个字符后放置空格。从“4.20GB”你需要得到“4.20GB”。我知道可以使用sed、awk 等来完成,但我正在寻找一种轻量级且更跨平台的方法(适用于 Linux/Unix/BSD)。
是否可以使用bash 及其功能来做到这一点?出于某种原因,我认为 printf 可以做到,但快速检查并没有产生任何积极的结果。
【问题讨论】:
如果我理解正确,每行以一些数字结尾,后面跟着 GB,需要你在 GB 之前添加一个空格。我不应该使用 split 这个词来暗示你想将一行分成两行。
试试:
sed -i 's/GB$/ GB/' [filenames ...]
我认为sed 比bash 更“跨平台”,因为无论你有bash,你很容易就会有sed,正如@fuxoft 在他的回答中所说。
【讨论】:
您正在寻找“比sed 更多的跨平台方法”,然后询问“是否可以使用bash 及其功能来实现?”
可以肯定地说,sed 安装(或“易于安装”)在比bash 更多的计算机架构上,因此使用sed 应该比使用bash 更“跨平台”。
【讨论】: