我有一个文件,我把它放到维基
Marina Abramovi? 43199842
Vito Acconci 43160016
Bas Jan 80902233
Eija-Liisa Ahtila 43406552
Peggy Ahwesh 37006646
Rita Ackermann 43208993
Chantal Akerman 43272249
Vikky Alexander 80703016
Edward Allington 43387956
Francis Alÿs 43215850
Laurie Anderson 43170307
Carl Andre 43308046
Janine Antoni 43386750
Ida Applebroog 43392256
Nobuyoshi Araki 43387929
Diane Arbus 43394941
Siah Armajani 43312101
Arman smith 80008834
John Armleder 43437177
Richard Artschwager 43371334
Frank Auerbach 43386120
Run Code Online (Sandbox Code Playgroud)
如果我将 Pipes 放在单词和名称之间,当我将它放入 wiki 时,它看起来就像一个漂亮的整齐格式化的表格。我使用了很好用的 awk,但是有时我会花更多的时间来整理我将手动放入管道中的列。
casper@casper-PC ~ ->
11:16 PM Wed Dec 02$ awk '{$1="|" $1 ; $2=$2 "| " ; $3=$3 "| | |" ; print $0}' /tmp/joinNameNumber
|Marina Abramovi?| 43199842| | |
|Vito Acconci| 43160016| | |
|Bas Jan| 80902233| | |
|Eija-Liisa Ahtila| 43406552| | |
|Peggy Ahwesh| 37006646| | |
|Rita Ackermann| 43208993| | |
|Chantal Akerman| 43272249| | |
|Vikky Alexander| 80703016| | |
|Edward Allington| 43387956| | |
|Francis Alÿs| 43215850| | |
|Laurie Anderson| 43170307| | |
|Carl Andre| 43308046| | |
|Janine Antoni| 43386750| | |
|Ida Applebroog| 43392256| | |
|Nobuyoshi Araki| 43387929| | |
|Diane Arbus| 43394941| | |
|Siah Armajani| 43312101| | |
|Arman Smith| 80008834| | |
|John Armleder| 43437177| | |
|Richard Artschwager| 43371334| | |
|Frank Auerbach| 43386120| | |
casper@casper-PC ~ ->
11:16 PM Wed Dec 02$
Run Code Online (Sandbox Code Playgroud)
有没有办法可以打印出固定宽度的线条?
|Marina Abramovi? | 43199842| | |
|Vito Acconci | 43160016| | |
|Bas Jan | 80902233| | |
|Eija-Liisa Ahtila | 43406552| | |
|Peggy Ahwesh | 37006646| | |
|Rita Ackermann | 43208993| | |
|Chantal Akerma | 43272249| | |
|Vikky Alexander | 80703016| | |
|Edward Allington | 43387956| | |
|Francis Alÿs | 43215850| | |
|Laurie Anderson | 43170307| | |
|Carl Andre | 43308046| | |
|Janine Antoni | 43386750| | |
|Ida Applebroog | 43392256| | |
|Nobuyoshi Araki | 43387929| | |
|Diane Arbus | 43394941| | |
|Siah Armajani | 43312101| | |
|Arman Smith | 80008834| | |
|John Armleder | 43437177| | |
|Richard Artschwager| 43371334| | |
|Frank Auerbach | 43386120| | |
casper@casper-PC ~ ->
11:16 PM Wed Dec 02$
Run Code Online (Sandbox Code Playgroud)
我认为您说您的输入文件是用管道分隔的(但我在您的示例数据中没有看到这一点)。
如果您的数据是用管道分隔的,这里有一个解决方案。
awk -F"|" '{printf("|%-25s|%10s|%8s|%8s|\n", $1, $2, $3, $4)}' file > newFile
Run Code Online (Sandbox Code Playgroud)
显然,这些%25s值表示 25 个字符宽,因此请进行更改以满足您的需求。
-偶尔出现的前导%-25s表示将文本左对齐。
修改后的数据解决方案
awk '{printf("|%-25s|%10s|%8s|%8s|\n", $1 " " $2, $3, $4, $5)}' file > newFile
Run Code Online (Sandbox Code Playgroud)
现在,$1 " " $2进入前 2 个“|”之间 字符,依靠awks 连接功能为格式说明符提供 1 值%-25s。
测试
echo "Peggy Ahwesh 37006646" | awk '{printf("|%-25s|%10s|%8s|%8s|\n", $1 $2, $3, $4, $5)}'
Run Code Online (Sandbox Code Playgroud)
输出
|PeggyAhwesh | 37006646| | |
Run Code Online (Sandbox Code Playgroud)