請(qǐng)閱讀【嵌入式開發(fā)學(xué)習(xí)必備專欄 】
awk 處理文件名,去除后綴只保留文件名
在 shell 中, 可以使用 awk
來處理文件名,去除其后綴。下面是一個(gè)示例命令,它會(huì)將帶有后綴的文件名作為輸入,并輸出沒有后綴的文件名:
filename="example.txt"
basename=$(echo "$filename" | awk -F"." '{OFS="."; $NF=""; sub(/\.$/, "", $0); print}')
echo "$basename"
這個(gè)命令片段做了以下幾件事情:文章來源:http://www.zghlxwxcb.cn/news/detail-844790.html
-
-F"."
設(shè)置了輸入字段的分隔符為點(diǎn)號(hào)(.
),這是文件后綴的通常分隔符。 -
OFS="."
設(shè)置了輸出字段的分隔符也為點(diǎn)號(hào)。 -
$NF=""
將最后一個(gè)字段(即文件的后綴)設(shè)置為空字符串。 -
sub(/\.$/, "", $0)
使用正則表達(dá)式匹配行末尾的點(diǎn)號(hào)并將其刪除。 -
print
輸出處理后的行,即沒有后綴的文件名。
這將輸出example
(去掉了.txt
后綴)。
另一種更簡(jiǎn)單的方法是使用rev
和cut
命令組合,這可能更容易理解,而且不需要awk
:
filename="example.txt"
basename=$(echo "$filename" | rev | cut -d"." -f2- | rev)
echo "$basename"
這個(gè)命令的工作原理是:文章來源地址http://www.zghlxwxcb.cn/news/detail-844790.html
- 使用
rev
命令反轉(zhuǎn)文件名字符串。 - 使用
cut
命令以點(diǎn)號(hào)為分隔符,選取反轉(zhuǎn)后的第二個(gè)字段到最后(即除去了第一個(gè)字段,也就是原始字符串的后綴部分)。 - 再次使用
rev
命令反轉(zhuǎn)結(jié)果回到正常的順序。
例如,對(duì)于文件名example.txt
,這也會(huì)輸出example
。
請(qǐng)注意,如果文件名中有多個(gè)點(diǎn)號(hào),以上方法會(huì)去掉最后一個(gè)點(diǎn)號(hào)及其之后的部分。如果文件名中有版本號(hào)或多個(gè)后綴,可能需要其他方法來處理。
awk -F "\"" '{print$2}' auto_generate.h | awk -F"." '{OFS="."; $NF=""; sub(/\.$/, "", $0); print}'
到了這里,關(guān)于【嵌入式開發(fā) Linux 常用命令系列 7.4 -- awk 處理文件名,去除后綴只保留文件名】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!