幾個與文字處理相關的Linux命令總結
1.當前目錄下有若干檔案,找出副檔名為TextGrid的所有檔案,並複製到…/file_set。
find . -name "*.TextGrid" \-exec cp {} ../file_set/ \;
2.當前目錄下有若干檔案,找出副檔名為“TextGrid”且非UTF-8(UTF-8 Unicode Text,with CRLF line terminators)編碼的檔案,並將其移動到…/trash。該型別的檔案命名規則為16位隨機數字。
for s_file in `for t_file in $(ls *.TextGrid);do file $t_file|grep -v "UTF-8 Unicode Text,with CRLF line terminators"|grep -o -E [0-9]{16}\.TextGrid;done` do mv $s_file ../trash ;done
3.產生一個含有大寫字母和數字長度為8的隨機字串。
echo $RANDOM|md5sum|tr -t [a-z] [A-Z]|cut -b 1-8
4.批量刪除文字中以某指定字串匹配的行。
sed -i '/^sid/d' test.txt
5.檢視系統中所有人可讀寫執行的不安全檔案。
find / -perm 777 -a \! -type s -a \! -type l -a \! \( -type d -a -perm 1777 \)
6.當前目錄中有300個檔案,現需要從該批檔案中隨機選取100個並移動到上層目錄to_dir中。
for $files in `ls|sort --random-sort|head -n 100`;do mv $files ../to_dir/ ; done
7.當前目錄有若干UTF-8帶BOM的檔案,需刪除這些檔案中的BOM。
for files in `ls`;do sed -i 's/\xEF\xBB\xBF//g' $files ;done
8.當前目錄下有若干UTF-8檔案,使用file命令檢視,顯示“UTF-8 Unicode (with BOM) text”,找出非該類檔案,並檢視他們的內容。
file *|grep -v "UTF-8 Unicode (with BOM) text"|awk -F ":" '{print $1}'|xargs cat
9.當前目錄下有一批UTF16BE的檔案,需轉換成UTF-8,轉換完成後需將新檔案儲存到上層目錄to_dir中。
for files in `ls`; do iconv -f UTF16BE -t UTF-8 -o ../to_dir/$files $files;done
Linux公社的RSS地址 :ofollow,noindex" target="_blank">https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址:https://www.linuxidc.com/Linux/2018-10/154957.htm