複製檔案名稱的第一個單字

複製檔案名稱的第一個單字
 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

相關內容