Useful Commands/File Processing: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 3: | Line 3: | ||
|- | |- | ||
| 目錄與檔案權限分別設為 755 和 644 | | 目錄與檔案權限分別設為 755 和 644 | ||
| < | | <syntaxhighlight lang="bash"> | ||
find . -type d -exec chmod 755 {} +\ | find . -type d -exec chmod 755 {} +\ | ||
find . -type f -exec chmod 644 {} + | find . -type f -exec chmod 644 {} + | ||
</ | </syntaxhighlight> | ||
|- | |- | ||
| rename | | rename | ||
| < | | <syntaxhighlight lang="bash"> | ||
# Test first | # Test first | ||
$ rename -n 's/short_selled-([0-9]{8}).json/selled-$1.json/' short_selled-* | $ rename -n 's/short_selled-([0-9]{8}).json/selled-$1.json/' short_selled-* | ||
| Line 18: | Line 18: | ||
# Do it | # Do it | ||
$ rename 's/short_selled-([0-9]{8}).json/selled-$1.json/' short_selled-* | $ rename 's/short_selled-([0-9]{8}).json/selled-$1.json/' short_selled-* | ||
</ | </syntaxhighlight> | ||
|- | |- | ||
| 搜尋文字檔,複製到另一個目錄 || < | | 搜尋文字檔,複製到另一個目錄 || <syntaxhighlight lang="bash">find . -name *.txt -exec cp {} 目的目錄 \;</syntaxhighlight> | ||
|- | |- | ||
| 從所在目錄遞迴掃檔案找 'string' || < | | 從所在目錄遞迴掃檔案找 'string' || <syntaxhighlight lang="bash">grep -rn --color -C 2 'string' .</syntaxhighlight> | ||
|- | |- | ||
| 移除 7 天前的 log || < | | 移除 7 天前的 log || <syntaxhighlight lang="bash">find . -name '*.log' -mtime 7 -exec rm -f {} \;</syntaxhighlight> | ||
|- | |- | ||
| 移除超過 7 天的 log || < | | 移除超過 7 天的 log || <syntaxhighlight lang="bash">find . -name '*.log' -mtime +7 -exec rm -f {} \;</syntaxhighlight> | ||
|- | |- | ||
| 移除 7 天前到現在的 log || < | | 移除 7 天前到現在的 log || <syntaxhighlight lang="bash">find . -name '*.log' -mtime -7 -exec rm -f {} \;</syntaxhighlight> | ||
|- | |- | ||
| 用 regex 找檔案 || < | | 用 regex 找檔案 || <syntaxhighlight lang="bash">find . -regex '.*[0-9]\{4\}.txt'</syntaxhighlight> | ||
|- | |- | ||
| 取檔名中數字的部分 || < | | 取檔名中數字的部分 || <syntaxhighlight lang="bash">ls file-0001.txt | sed 's/file-\([0-9]\{4\}\).txt/\1/'</syntaxhighlight> | ||
|} | |} | ||
Latest revision as of 20:17, 3 April 2025
| 情境 | 指令 |
|---|---|
| 目錄與檔案權限分別設為 755 和 644 | find . -type d -exec chmod 755 {} +\
find . -type f -exec chmod 644 {} +
|
| rename | # Test first
$ rename -n 's/short_selled-([0-9]{8}).json/selled-$1.json/' short_selled-*
rename(short_selled-20190606.json, selled-20190606.json)
rename(short_selled-20190610.json, selled-20190610.json)
rename(short_selled-20190611.json, selled-20190611.json)
...
# Do it
$ rename 's/short_selled-([0-9]{8}).json/selled-$1.json/' short_selled-*
|
| 搜尋文字檔,複製到另一個目錄 | find . -name *.txt -exec cp {} 目的目錄 \;
|
| 從所在目錄遞迴掃檔案找 'string' | grep -rn --color -C 2 'string' .
|
| 移除 7 天前的 log | find . -name '*.log' -mtime 7 -exec rm -f {} \;
|
| 移除超過 7 天的 log | find . -name '*.log' -mtime +7 -exec rm -f {} \;
|
| 移除 7 天前到現在的 log | find . -name '*.log' -mtime -7 -exec rm -f {} \;
|
| 用 regex 找檔案 | find . -regex '.*[0-9]\{4\}.txt'
|
| 取檔名中數字的部分 | ls file-0001.txt | sed 's/file-\([0-9]\{4\}\).txt/\1/'
|