当前位置: 技术问答>linux和unix
格式化文本的问题,,,,急
来源: 互联网 发布时间:2015-03-06
本文导语: 偶有一个文件名 hello.txt 格式如下: hello word hello jack hello micheal 需按配置[7,14][1,7]格式转换成如下格式生成hello1.txt word hello jack hello micheal hello 帮帮忙 | 呵呵,perl版本的。 ---------------...
偶有一个文件名 hello.txt 格式如下:
hello word
hello jack
hello micheal
需按配置[7,14][1,7]格式转换成如下格式生成hello1.txt
word hello
jack hello
micheal hello
帮帮忙
hello word
hello jack
hello micheal
需按配置[7,14][1,7]格式转换成如下格式生成hello1.txt
word hello
jack hello
micheal hello
帮帮忙
|
呵呵,perl版本的。
-----------------------------------------------
#!/usr/bin/perl
$fileName = 'hello.txt';
open FIN,$fileName;
while (){
/^(w+)s+(w+)s*$/;
$ret = sprintf ("%-7s %-7s",$2,$1);
print $ret,"n";
}
close FIN;
------------------------------------------------
把它存为文件,名字比如叫 conv.pl
加上可执行权限,运行:
$ conv.pl > hello1.txt
呵呵,成了。
-----------------------------------------------
#!/usr/bin/perl
$fileName = 'hello.txt';
open FIN,$fileName;
while (){
/^(w+)s+(w+)s*$/;
$ret = sprintf ("%-7s %-7s",$2,$1);
print $ret,"n";
}
close FIN;
------------------------------------------------
把它存为文件,名字比如叫 conv.pl
加上可执行权限,运行:
$ conv.pl > hello1.txt
呵呵,成了。
|
如果你能够确保格式严格的话,可以在bash下用cut命令来做。我大概写一个,你注意调试一下:
#!/bin/sh
while read text_line
do
ch1_7=`echo $text_line|cut -c1-6` #这里应该是6吧?!
ch7_14=`echo $text_line|cut -c7-14`
echo "${ch7_14}${ch1_7}"
done
将这个文件存为a.sh;然后增加x许可后执行
a.sh result.txt
就可以了。
#!/bin/sh
while read text_line
do
ch1_7=`echo $text_line|cut -c1-6` #这里应该是6吧?!
ch7_14=`echo $text_line|cut -c7-14`
echo "${ch7_14}${ch1_7}"
done
将这个文件存为a.sh;然后增加x许可后执行
a.sh result.txt
就可以了。