从文件中交换shell

时间:2017-11-18 11:33:40

标签: bash shell swap cut

通过cut -d":" -f1,3我创建了一个新文件,如下所示:

username1:number1
username2:number2
username3:number3

但我的观点是,我希望我的文件看起来像这样:

number1:username1
number2:username2
number3:username3

我尝试了cut -d":" -f3,1,但即使我希望第3列成为第1列,第1列就像最后一列一样打印它,它仍然会让我username1:number1 ...任何帮助那个?

2 个答案:

答案 0 :(得分:4)

cut -f3,1的打印方式与cut -f1,3相同。使用awk

awk -F: '{print $3 FS $1}' file

答案 1 :(得分:1)

我喜欢awk这种事情。你已经有了一个awk答案。

要在纯粹的bash中执行此操作,您需要执行以下操作:

while IFS=: read -r one two; do printf '%s:%s\n' "$two" "$one"; done < input.txt

IFS变量是字段分隔符,用于将输入切分为read的单独变量,我使用printf为我们提供可预测格式的输出。