我有一个文本文件,每行包含一些单词,例如:
stackoverflow coding programming
tag question badges
我必须对每一行进行排序并保持行的顺序。例如,对于上面的例子,输出应该是:
coding programming stackoverflow
badges question tag
到目前为止,我的解决方案是创建一个临时文件,其中所有行都已排序。 bash 脚本如下所示:
FILE_TMP=$FILE".tmp"
while read line
do
echo $line | xargs -n1 | sort | xargs >>$FILE_TMP
done < $FILE
mv $FILE_TMP $FILE
它工作正常,但我很不高兴我必须创建一个重复的文件,尤其是因为文件很大。
那么,我的问题是有什么解决方案可以对文件的每一行进行排序吗?
谢谢,
最佳答案
试试这个(如果文件不是空格分隔的,您可能需要更改 sed):
cat datafile.dat | while read line; do echo $line | sed 's/ /\n/g' | sort | gawk '{line=line " " $0} END {print line}' ; done
关于linux - 对文本文件中的每一行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16175073/