使用UNIX命令格式化文件行

时间:2013-01-31 07:12:44

标签: unix

我的文件内容为:

file1.txt|file2.txt|file2.txt|.............................fileN.txt
log1.txt|log2.txt|log3.txt|................logN.txt

我想从右到左为每行打印: 输出:

fileN.txt|fileN-1.txt|fileN-2.txt|.............................file1.txt
logN.txt|logN-1.txt|logN-2.txt|................log1.txt

如果不清楚,请帮助或告诉我。

3 个答案:

答案 0 :(得分:1)

您在阅读此文件时可以编写简单的perl脚本... 用"|" sperater切断该行并将其放入一个数组中,然后再将该数组用反向索引写入文件。

我希望你理解算法

此致 维奈

答案 1 :(得分:1)

这是使用awk的一种方式:

awk -F "|" '{ for (i=NF;i>=1;i--) printf "%s", $i (i==1 ? "\n" : FS) }' file

测试:

file的内容:

file1.txt|file2.txt|file3.txt|file4.txt|file5.txt|file6.txt
log1.txt|log2.txt|log3.txt|log4.txt|log5.txt

结果:

file6.txt|file5.txt|file4.txt|file3.txt|file2.txt|file1.txt
log5.txt|log4.txt|log3.txt|log2.txt|log1.txt

答案 2 :(得分:1)

如果您更喜欢Python

for line in open("file.txt").read().split("\n"):
    print "|".join(line.split("|")[::-1])