Я не верю так. Даже если я являюсь неправым, лучшим, можно надеяться на, добавляет их ко всему Типу, никогда экземпляр из Типа.
Используйте awk:
awk '{print $2,$1}' ip-list
Это должно дать вам то, что вы хотите.
Простейшее решение:
awk '{print $2 "\t" $1}'
Однако есть некоторые проблемы. Если в любом из полей могут быть пробелы, вам необходимо выполнить одно из следующих действий: (в зависимости от того, поддерживает ли ваш awk -v)
awk -v FS='\t' '{print $2 "\t" $1}' awk 'BEGIN{ FS="\t" } {print $2 "\t" $1}'
В качестве альтернативы вы можете выполнить одно из следующих действий:
awk -v OFS='\t' '{print $2,$1}' awk 'BEGIN{ OFS="\t" } {print $2,$1}' awk -v FS='\t' -v OFS='\t' '{print $2,$1}' # if allowing spaces in fields
В одном из комментариев спрашивается: ' куда идет имя файла? awk используется как фильтр, поэтому обычно он выглядит как:
$ some-cmd | awk ... | other-cmd
без указания имени файла. Или имя файла может быть указано в качестве аргумента после всех команд:
$ awk ... filename
perl -pi -e 's / ^ ([^ \ t] +) \ t ([^ \ t] +) $ / \ 2 \ t \ 1 / 'yourfile.csv
perl -pi -e' split ("\ t"); print "$ _ [1] \ t $ _ [0]" '
Первый, вероятно, работает и на sed
.