linux 粘贴和剪切

标签 linux

我有一个电话号码列表,如下所示:

姓氏,名字 12344 ... ...

我希望在一个管道序列中仅采用第一个姓氏列并将其粘贴到一个新文件中,前提是只有第一个字母是大写字母。 例如:

NIXON

COHEN

将是:

Nixon

Cohen

我需要使用剪切和粘贴命令来完成。 我知道如何削减第一个后者:

cut -f1 -d"," phone.txt | cut -c1

以及如何剪切其余字母并使它们不是大写:

cut -f1 -d"," phone.txt | cut -c2- | tr [A-Z] [a-z]

但我不明白如何将它们粘贴到一个管道序列中。 如果有帮助,我可以使用 grep 或 sed。

谢谢,

最佳答案

假设 phone.txt 文件包含:

NIXON, John 123
COHEN, Tomas 345

sed 方法:

sed 's/^\(.\)\([^,]*\).*/\u\1\L\2/' phone.txt

gawk 备选方案:

awk -F, '{print substr($1, 1, 1) tolower(substr($1, 2))}' phone.txt

输出(两种方法):

Nixon
Cohen

关于linux 粘贴和剪切,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43696022/

相关文章:

linux - 数据 block 和页面有什么区别?

linux - 如果我将 tomcat 7 绑定(bind)到第二个 IP 地址,它会在需要时使用第一个 IP 地址吗?

linux - 构建开发失败 : Cannot set property 'fileSystem' of null

linux - 从特定文件的开头删除换行符

c++ - 从一端关闭的管道或套接字对读取直到达到 EOF 是否安全?

linux - 在字符串中使用文件中的匹配

linux - wc 压缩文件?

linux - 使用 uinput 在 Linux 中模拟绝对鼠标移动

linux - 从 OSX 安装 SMB

php - Composer 安装 -sS 或 -s