批处理实现文本内容横列变纵列
题目
有一个文本 a.txt,内容如下
ps:每行的字符数都一样,但未知多少个字符。
注意,文本第三行r之后有一个空格。第四行x之后有一个空格
要求
横列变纵列,并保留原来空格。
代码
#! /bin/bash
file=./a.txt
# 行数
height=`wc -l ${file} | awk '{print $1}'`
# 最大列
width=`wc -L ${file} | awk '{print $1}'`
# 将文本内容保存到一维数组中
i=0
while [ ${i} -lt ${height} ]
do
let no=${i}+1
line[i]=`sed -n "${no}p" ${file}`
let i++
done
i=0
while [ ${i} -lt ${width} ]
do
newLine[${i}]=""
j=0
# 输出每一列的值
while [ ${j} -lt ${height} ]
do
c=${line[j]:${i}:1}
if [ " " == "${c}" ]
then
printf " "
else
printf "%s" ${c}
fi
let j++
done
printf "\n"
let i++
done