![如何使用分隔符打印文件中的列?](https://linux22.com/image/898142/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E5%88%86%E9%9A%94%E7%AC%A6%E6%89%93%E5%8D%B0%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E5%88%97%EF%BC%9F.png)
从:
pa: Pensilvania:145
mo:Misuri:50
va:Virginia:20
打印1:
pa:
mo:
va:
打印2:
pa: Pensilvania
mo: Misuri
va:Virginia
sed
或cut
将被优先考虑。
答案1
以下是一种方法:
$ awk -F: '{print $1 FS}' file
pa:
mo:
va:
和
$ awk -F: '{print $1 FS $2}' file
pa: Pensilvania
mo:Misuri
va:Virginia
如果你愿意的话cut
,第二个很简单:
$ cut -d: -f1,2 file
pa: Pensilvania
mo:Misuri
va:Virginia
为了在第一种情况下获取所需的尾随分隔符,您可以使用paste
:
$ cut -d: -f1 file | paste -d: - /dev/null
pa:
mo:
va:
另一方面是轻松使用sed
:
$ sed 's/:.*/:/' file
pa:
mo:
va:
而第二个则需要多加思考:
$ sed 's/:[^:]*//2' file
pa: Pensilvania
mo:Misuri
va:Virginia