我想知道如何用linux交换文件的列(确切的字符)(使用cut、awk、sed或任何你能帮助我的东西)。
我已经看到了如何交换整个表达式(使用分隔符)和整个单词。
例子:
128934
38 2008
将列3与5交换:
123984
3802 08
另一种方法是用第五个字符替换每行的第三个字符。
最佳答案
有点笨拙,有了sed:
$ sed -E 's/^(..)(.)(.)(.)/\1\4\3\2/' infile
123984
3802 08
这将捕获四个组中每行的前五个字符,然后重新排列它们。
-E
只是为了方便起见;没有它,我们必须像\(.\)
中那样跳过括号。关于linux - 交换文件的列-Linux(确切位置,不是单词),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45516013/