使用awk修改具有可变字段数的文件中第一列的宽度
我知道如何使用awk的printf函数,但是我不想指定每个字段。 例如,假设这是我的文件: c1|c2|c3|c4|c5 c6|c7|c8|c9|c10 c11|c12|c13|c14|c15 我想对其进行格式化,以便每个记录的第一个字段是c11的宽度-第一个字段中最长的单元格: c1 |c2|c3|c4|c5 c6 |c7|c8|c9|c10 c11|c12|c13|c14|c15 我了解我可以指定: awk -F"|" '{printf "%-3s%s%s%s%s\n", $1, $2, $3, $4, $5}' file > newfile 假设我知道我希望第一列的宽度是多少,但是我不知道文件中有多少个字段。基本上我想做这样的事情: ... '{printf "%-3s|", $1}' ...,然后以其原始格式打印其余字段。