Text-Processing

剪切 /etc/passwd 但在結果欄位集中沒有冒號 (:)

  • May 19, 2022

我想使用以下格式在 /etc/passwd 上列出使用者名、id 和組:username uid gid

我使用了以下內容:

cut -d: -f1,3,4 /etc/passwd

但它返回username:uid:gid。如何格式化命令以刪除:or 沒有它的列表,如下所示:

root 0 0
daemon 1 1
bin 2 2
...

取決於你想要什麼輸出

最簡單的方法是將分隔符翻譯成你想要的trsed或者awk……例如

cut -d: -f1,3,4 /etc/passwd | tr ':' '\t'
cut -d: -f1,3,4 /etc/passwd | sed 's/:/ --- /g'
awk -F: '{ print $1, $3, $4}' /etc/passwd

如果要格式化為表格,請使用column

cut -d: -f1,3,4 /etc/passwd | column -t -s ':'

我的 cut (cut (GNU coreutils) 8.28) 版本有一個--output-delimiter論點:

cut -d: -f 1,3,4 --output-delimiter " " /etc/passwd

結果:

root 0 0
daemon 1 1
bin 2 2
sys 3 3

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