Cut

剪切命令,命令不保留?

  • April 18, 2013

我有一個範例文件:-

[root@localhost base_filters]# cat shortlist
2233|charles harris  |g.m.     |sales     |12/12/52| 90000
9876|bill johnson    |director |production|03/12/50|130000
5678|robert dylan    |d.g.m.   |marketing |04/19/43| 85000
2365|john woodcock   |director |personnel |05/11/47|120000
5423|barry wood      |chairman |admin     |08/30/56|160000

我想翻轉文件中的名稱,以便在姓氏,之後有一個逗號,例如,名稱應該顯示為 harris,charles。

我嘗試了以下命令:-

[root@localhost base_filters]# tr -s ' ' < shortlist | cut -d\| -f2 | cut -d' ' -f2,1
charles harris
bill johnson
robert dylan
john woodcock
barry wood

我希望首先出現姓氏,所以我指定了欄位 2,然後指定了 1,但這似乎不起作用。關於這個的任何想法?

這很容易使用awk. 首先列印出名稱,然後再次將輸出通過管道傳輸到 awk(這次使用空格作為文件分隔符)。

awk -F "|" '{print $2}' extract.txt | awk -F " " '{print $2 "," $1}'

cut 的手冊頁說

所選輸入的寫入順序與讀取順序相同,並且只寫入一次。

所以你必須使用其他工具而不是切割。例如 sed、awk、perl、python 或 bash。

引用自:https://unix.stackexchange.com/questions/72622