我有一个如下所示的电话号码列表:
最后一个名字,名字12344 ... ...
我想在一个管道序列中只取第一个姓氏列,并在只有第一个字母为大写时将其粘贴到一个新文件中。 例如:
NIXON
COHEN
将是:
尼克松
科恩
我需要使用剪切和粘贴命令来完成它。 我知道如何削减第一个后者:
cut -f1 -d"," phone.txt | cut -c1
如何削减其余的字母并使它们不是资本:
cut -f1 -d"," phone.txt | cut -c2- | tr [A-Z] [a-z]
但我无法理解如何将它们粘贴在一个管道序列中。 如果有帮助,我可以使用grep或sed。
谢谢,
答案 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]
输出:尼克松