
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 內建變數擴展,而不是使用sed
、cut
或等外部工具: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