File 在shell脚本中邮寄文本文件之前格式化文本文件

File 在shell脚本中邮寄文本文件之前格式化文本文件,file,shell,email,unix,scripting,File,Shell,Email,Unix,Scripting,目前我正在使用 uuencode "file" "report.txt" | mailx -s "Subject" xyz@abc.com 我得到的输出是 002506960 830148XXM ILD514CSE 0000000 004129197 737620BQJ LCT453INN 0000000 000130122 984062NOR YUR416XER 0000480 000134266 095151MET RUB648DEA 0000210 000232322 941669CAR

目前我正在使用

uuencode "file" "report.txt" | mailx -s "Subject" xyz@abc.com
我得到的输出是

002506960 830148XXM ILD514CSE 0000000 004129197 737620BQJ LCT453INN 0000000 000130122 984062NOR YUR416XER 0000480 000134266 095151MET RUB648DEA 0000210
000232322 941669CAR DET672KEH 0000600 000232320 941669CAR DET672KEH 0071014 000232325 941669CAR DET672KEH 0071014
所需输出:

032506961 830148XXM ILD514CSE 0000000    
034129191 737620BQJ LCT453INN 0000000    
030130121 984062NOR YUR416XER 0000480    
030134261 095151MET RUB648DEA 0000210    
030232321 941669CAR DET672KEH 0000600    
030232321 941669CAR DET672KEH 0071014    
030232321 941669CAR DET672KEH 0071014
(注:线与线之间无间隙)
您知道如何实现这一点吗?

您可以通过管道将输出传送到:

awk '{for (i=1; i<=NF; i++) printf "%s%s", $i, (i%4==0)?ORS:OFS}'

谢谢您。你能解释一下吗。另外,我如何将此输出保存到我必须发送的文件中?要保存输出,请使用:
uuencode“file”“report.txt”| mailx-s“Subject”xyz@abc.com| awk'{用于(i=1;我感谢您的回复。但它的输出与以前相同。它不是在第四列后输入enter以开始新行。您可以在我的答案中看到awk输出,它是我根据您给定的输出生成的。
002506960 830148XXM ILD514CSE 0000000
004129197 737620BQJ LCT453INN 0000000
000130122 984062NOR YUR416XER 0000480
000134266 095151MET RUB648DEA 0000210
000232322 941669CAR DET672KEH 0000600
000232320 941669CAR DET672KEH 0071014
000232325 941669CAR DET672KEH 0071014