Text-Processing
刪除空配置部分
~/.config/vlc/vlcrc
如果您只想對配置選項進行版本控制,那麼像這樣的文件99% 都是垃圾。我有一個刪除評論的腳本,但是還有很多空的配置部分。我的sed
- 和awk
-fu 跟不上速度,那麼如何刪除空的配置部分?配置部分的第一行匹配,如果第一行後跟任意數量的僅由空格組成的行,則
^\[.*\]$
它是空^\[.*\]$
的,然後是另一行匹配orEOF
。
當你看到它們時召回部分標題,但在你看到該部分中的設置行之前不要列印它們。您可以通過將節標題儲存在保留空間中來在 sed 中執行此操作,但在 awk 中更清晰。
awk ' /^ *\[/ {section=$0} # recall latest section header /^ *[^[#]/ { # setting line if (section != "") {print section; section="";} # print section header if not yet done print } ' ~/.vlc/vlcrc >~/config/vlc/vlcrc
作為 awk 單行的替代方法,您可以將 awk 腳本儲存到文件中。這是腳本的稍微複雜的版本:
#!/usr/bin/awk -f # No section seen yet. BEGIN { section="" } # Match and save current section header. /^\[.*\]$/ { section=$0; next; } # Ignore blank and comment-only lines. /^[[:space:]]*(#.*)?$/ { next; } # By default do this. { # Print section header if not already printed. #if(length(section)) { if(section != "") { print section; section=""; } # And print current line. print; }
只需將其保存到 conf-filter.awk 之類的文件中,並使用 chmod +x conf-filter.awk 將其標記為可執行。