我必须在bash语言中编写ubuntu linux中的脚本,它必须在命令行中使用三个参数:第一个文件的名称,其行必须排序,第二个文件(如果我想要按字母顺序排序升序或'z',如果我想按字母顺序排序降序)和第三个正数'n'。我只需要排序多个'n'的行。例如,如果我有一个100行和n = 5的文本文件,那么我只需要排序行5,10,15,...,100,其余的必须保持不变。这可以做到吗? 我能找到和多个“n”的这样的线路进行排序:(bash脚本)如何对文件中'n'位置倍数的行进行排序?
awk "NR%$n==0" archivo.txt | sort -f
,但现在我不知道该怎么写一遍这些行到文件中。
感谢您的关注
向我们展示你到目前为止所拥有的。 –
我可以找到'n'的倍数的行,并像这样排序:awk“NR%$ n == 0”file.txt | sort -f但现在我不能再将这些行再次引入到文件中。 –
仅供参考,这将更好地写为'awk -v n =“$ n”'NR%n == 0'';使用字符串替换来生成脚本(使用任何语言 - 不仅仅是awk,还包括bash,SQL等)显然是不安全的,而不是从代码中带外传递数据。 –