如何使用shell脚本按字母顺序在文件中插入一行

时间:2011-06-09 03:03:00

标签: linux shell unix

如何使用shell脚本将行插入到文件中,以便按字母顺序插入,以下将更好地解释。

输入文件包含:

1 hsdfd
2 bsdfd
3 ekksdf
.
.

我想使用shell脚本将这些内容插入到另一个文件中,使它们如下所示,按字母顺序排序:

< root > <br>
< devices name="bsdfd" value=2 > <br>
 < details info="xxxxxxxxxxxxxxxxx"> <br>
 < details info="yyyyyyyyyyyyyyyyy"> <br>
< /devices > <br>
< devices name="ekksdf" value=3 > <br>
 < details info="xxxxxxxxxxxxxxxxx"> <br>
 < details info="yyyyyyyyyyyyyyyyy"> <br>
< /devices > <br>
< devices name="hsdfd" value=1 > <br>
 < details info="xxxxxxxxxxxxxxxxx"> <br>
 < details info="yyyyyyyyyyyyyyyyy"> <br>
< /devices > <br>
< /root>

2 个答案:

答案 0 :(得分:1)

echo "1 hsdfd
2 bsdfd
3 ekksdf " | sort -k 2 

2 bsdfd
3 ekksdf 
1 hsdfd

因此,如果有第二个文件,并且您希望对结果进行排序:

cat file1 file2 | sort -k 2 > sorted

更新:编辑完成后,我会在调用sort后使用sed作为主要工作:

echo "1 hsdfd
2 bsdfd
3 ekksdf" | sort -k 2  | sed -r 's/(.*) (.*)/foo \2 bar \1/;a\nyell\nprok'

foo bsdfd bar 2
nyell
prok
foo ekksdf bar 3
nyell
prok
foo hsdfd bar 1
nyell
prok

一些带猫的化妆品到底,用于页脚和标题。完成。 :)

答案 1 :(得分:0)

sort -k 2,2 input.txt > output.txt

请参阅http://ss64.com/bash/sort.html