一对夫妇一般提示的(除了DOS行结束的问题):
cat
是串联的文件,这是不是一个可以读取文件的唯一工具!如果某个命令不读取文件,则使用重定向,如。
您可以设置与-F
选项字段分隔所以不是:
cat foo | awk 'BEGIN{FS="|"} {print $2 " " $1}'
尝试:
awk -F'|' '{print $2" "$1}' foo
这将输出:
com.emailclient.account [email protected]
com.socialsite.auth.accoun [email protected]
以获得所需的输出你可以做很多事情。我可能会split()
第二场:
awk -F'|' '{split($2,a,".");print a[2]" "$1}' file
emailclient [email protected]
socialsite [email protected]
最后拿到的第一个字符转换为大写是awk
有点痛的,你没有一个很好的内置ucfirst()
功能:
awk -F'|' '{split($2,a,".");print toupper(substr(a[2],1,1)) substr(a[2],2),$1}' file
Emailclient [email protected]
Socialsite [email protected]
如果你想要的东西更简洁(虽然你放弃了一个子进程)你可以这样做:
awk -F'|' '{split($2,a,".");print a[2]" "$1}' file | sed 's/^./\U&/'
Emailclient [email protected]
Socialsite [email protected]
谢谢,这也是*非常有用! – Sazzy 2013-03-24 16:31:42