我有一个看起来像这样的文件:
abcdefghijklmn - [description]
abcdefg - [description]
efgkhtsf - [description]
.
.
.
列表继续,我需要编写一个脚本来反转文件的每一行,这样我就会有这样的事情:
[noitorecesd] - nmljkihgfedcba
.
.
.
有没有办法做到这一点? [description]
对于每一行都是相同的,它们可以被视为相同的字符。
答案 0 :(得分:4)
使用tr
和rev
:
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