用shell脚本实现文件内容转置
时间: 2023-01-15 08:56:28 浏览: 159
文件内容转置是指将文件中的行和列转换位置。例如,如果原文件内容是:
```
1 2 3
4 5 6
7 8 9
```
那么文件内容转置后的文件内容应该是:
```
1 4 7
2 5 8
3 6 9
```
下面是一个简单的 shell 脚本,可以实现文件内容转置的功能:
```bash
#!/bin/bash
# 读取文件名
echo -n "请输入文件名:"
read filename
# 如果文件不存在,则退出脚本
if [ ! -f $filename ]; then
echo "文件 $filename 不存在!"
exit 1
fi
# 计算文件的行数和列数
row=`cat $filename | wc -l`
col=`head -n 1 $filename | awk '{print NF}'`
# 创建临时文件
tmpfile="./${filename}.tmp"
touch $tmpfile
# 循环读取文件内容,并将其写入临时文件
for((i=1;i<=col;i++))
do
for((j=1;j<=row;j++))
do
value=`awk -v i=$i -v j=$j 'NR==j {print $i}' $filename`
echo -n "$value " >> $tmpfile
done
echo >> $tmpfile
done
# 将临时文件的内容复制到原文件中
cat $tmpfile > $filename
# 删除临时文件
rm $tmpfile
echo "文件内容转置完成!"
```
使用这个脚本时,需要先给予它可执行权限,然后在命令行中输入脚本名称并回车即可。例如:
```bash
$ chmod +x transpose.sh
$ ./transpose.sh
请输入文件名
阅读全文