linux粘贴和剪切

时间:2017-04-29 13:02:58

标签: linux

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

最后一个名字,名字12344 ... ...

我想在一个管道序列中只取第一个姓氏列,并在只有第一个字母为大写时将其粘贴到一个新文件中。 例如:

  

NIXON

     

COHEN

将是:

  

尼克松

     

科恩

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

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

如何削减其余的字母并使它们不是资本:

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

但我无法理解如何将它们粘贴在一个管道序列中。 如果有帮助,我可以使用grep或sed。

谢谢,

2 个答案:

答案 0 :(得分:3)

假设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

答案 1 :(得分:2)

试试这个: echo cut -f1 -d"," test.txt|cut -c1``cut -f1 -d"," test.txt|cut -c2- | tr [A-Z] [a-z]
输出:尼克松