2017-11-18 133 views
0

通过cut -d":" -f1,3我做了一个新的文件,该文件是这样的:交换从文件

username1:number1 
username2:number2 
username3:number3 

但我要说的是,我想我的文件看起来像这样:

number1:username1 
number2:username2 
number3:username3 

我尝试cut -d":" -f3,1,但它仍然让我username1:number1,即使当我想成为第三列是第一和第一列打印它像最后一列...任何帮助吗?

+0

您需要提供精确的输入和出把别人试图回答的时刻输入部分,甚至有 –

回答

4

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

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

不,我知道我知道......它现在的工作......但什么FS意味着这个AWK? – blackroad

+0

'FS'是字段分隔符,我们用'-F:'设置为':'。与'cut -d“类似:'' – thanasisp

+0

呃好的非常感谢你...... =) – blackroad

1

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

在纯bash中做到这一点,你会做到以下几点:

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

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