我有一个电话号码列表,如下所示:
姓氏,名字 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/