复制文件名的第一个单词

复制文件名的第一个单词
 zBase=$(basename "{query}")
title=${zBase%.*}
echo -n $title;

上面的命令将文件名复制到剪贴板(使用 Alfred:{query} 部分来自 Alfred)。现在,我只想复制文件名的第一个单词。我该如何修改它?

这是一个示例文件名:

John 2015 名词和动词结构.pdf

上述推荐在我的剪贴板中提供了 [John 2015 名词和动词结构]。现在,我只想得到约翰在我的剪贴板中。

答案1

title=$(echo $title | cut -d" " -f1)

在 echo 之前添加此内容。它在每个空格处剪切了名称并采用第一部分 -> 你想要做什么

答案2

您可以简单地使用已用于删除扩展的 shell 内置变量扩展,而不是使用sedcut或等外部工具:awk

echo -n ${title%% *}

使用 double%%意味着删除最长的匹配项,因此您可以从变量中删除从第一个空格开始的所有内容。

答案3

干得好, title=$(echo $zBase|awk {'print $1'})

在 awk 中,$1 给出第一个单词,$2 给出第二个单词,依此类推。

答案4

您始终可以依靠任何文本处理工具来完成这项工作。比如说sed

$ sed -r 's/^([[:alpha:]]*).*/\1/' <<< "John 2015 Noun and verb structure.pdf"
John

相关内容