在bash unix中向后读取行

时间:2014-02-25 15:35:02

标签: bash file unix

我有一个看起来像这样的文件:

abcdefghijklmn - [description]    
abcdefg - [description]    
efgkhtsf - [description]    
  .   
  .    
  .

列表继续,我需要编写一个脚本来反转文件的每一行,这样我就会有这样的事情:

[noitorecesd] - nmljkihgfedcba         
  .    
  .    
  .

有没有办法做到这一点? [description]对于每一行都是相同的,它们可以被视为相同的字符。

2 个答案:

答案 0 :(得分:4)

使用trrev

tr '][' '[]' < inputfile | rev

这不需要人们在输入中找到不存在的字符,以便交换[]

对于您的样本输入,结果是:

[noitpircsed] - nmlkjihgfedcba
[noitpircsed] - gfedcba
[noitpircsed] - fsthkgfe

答案 1 :(得分:2)

rev是工具。 man rev说 - &gt; reverse lines of a file or files

$ rev file
]noitpircsed[ - nmlkjihgfedcba
]noitpircsed[ - gfedcba
]noitpircsed[ - fsthkgfe

要正确显示括号,请将[替换为],反之亦然:

$ rev file | sed -e 's/\[/XXX/g' -e 's/\]/[/g' -e 's/XXX/\]/g'
[noitpircsed] - nmlkjihgfedcba
[noitpircsed] - gfedcba
[noitpircsed] - fsthkgfe