2017-11-18 131 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爲我們提供可預測的格式化輸出。