我有一个条形分隔的文本文件,如下所示:
stringC|rest-of-lineC3
stringC|rest-of-lineC1
stringC|rest-of-lineC2
stringA|rest-of-lineA2
stringA|rest-of-lineA1
stringB|rest-of-lineB4
stringB|rest-of-lineB1
stringB|rest-of-lineB3
stringB|rest-of-lineB2
我需要在|
之前用字符串对其进行排序 - 而不是对条形后面的内容进行二次排序。所以下面的例子应该分为:
stringA|rest-of-lineA2
stringA|rest-of-lineA1
stringB|rest-of-lineB4
stringB|rest-of-lineB1
stringB|rest-of-lineB3
stringB|rest-of-lineB2
stringC|rest-of-lineC3
stringC|rest-of-lineC1
stringC|rest-of-lineC2
但不是:
stringA|rest-of-lineA1
stringA|rest-of-lineA2
stringB|rest-of-lineB1
...
有没有办法在使用sort
或任何其他命令的bash脚本中执行此操作?
如果原始文件不在块中,我怎样才能获得与上面相同的结果,即它看起来像这样:
stringC|rest-of-lineC3
stringA|rest-of-lineA2
stringC|rest-of-lineC1
stringA|rest-of-lineA1
stringB|rest-of-lineB4
stringB|rest-of-lineB1
stringC|rest-of-lineC2
stringB|rest-of-lineB3
stringB|rest-of-lineB2
答案 0 :(得分:3)
使用-s
选项进行排序以获得稳定的
sort -st'|' -k1,1 file
初始块无关紧要,应该适用于两者。