Ⅰ shell腳本 把大文件內容拆分到小文件里
split –l 10000 原始文件 拆分後文件名前綴
參考:
http://jingyan..com/article/456c463b6f2e390a583144fe.html
Ⅱ 設計一個shell腳本,對該文件夾下的所有文件按照大小進行排序,從大到小輸出每個文件的名字和大小
這不一行命令就搞定了嗎:
ls -lS | awk '{print $9 " " $5}'
你可以將它保存為一個 shell 腳本。
命令運行截圖
ls -lS 的作用是查看文件信息,並以文件大小降序。
awk '{print $9 " " $5}' 的作用是從這些信息中過濾出文件名和文件大小,以空格隔開。
Ⅲ Shell腳本得到文件夾大小
ls -ld 文件夾路徑 | awk '{print int($5/1024)}'
或者:
-b 文件夾路徑 | awk '{print int($1/1024)}'
跟你上面計算文件大小類似,得到的都是以KB為單位的大小。
如果要以Byte為單位,不要除以1024也不要int取整就是了。
注意:Linux的ext2或ext3文件系統會給目錄分配一個inode塊(索引節點),用來記錄文件信息,所以文件夾的大小不是簡單地將其中文件大小累加就能得到的,還包括了這個索引節點的大小。索引節點是一個結構,它包含了一個文件的長度、創建及修改時間、許可權、所屬關系、磁碟中的位置等信息。
Ⅳ shell腳本:需根據文件的大小進行壓縮
sh -x yourshell
看看每個步驟
你的第一步就有問題了, file就是把目錄下的文件全都列出來了,取第二列就是文件名了。怎麼去和2000000比較???
tar也有問題,你壓縮成什麼?少了參數吧。。。
rm也有問題。你才壓縮一個文件,就把整個目錄幹掉了、、、
find . -size +2M 這樣不就把文件大於2M的弄出來了。。。僅供參考:
[root@localhost ~]# ls -sh a
27M a
[root@localhost ~]# find . -size +2M
./a
[root@localhost ~]# find . -size +2M -exec tar cjf /tmp/{}.tar.bz2 {} \;
[root@localhost ~]# ls /tmp/
a.tar.bz2
Ⅳ linux環境下,用shell腳本對一個文件內容拆分到指定文件裡面
首先取出ecas三行存入變數 ecasproperties
ecasproperties=(cat full.propertites|grep ecas)
再把其寫入ecas下的配置文件
echo $ecasproperties>>ecas/config.properties
其他的依此類推
或者直接一個命令cat full.propertites|grep ecas>>ecas/config.properties
Ⅵ 求教shell腳本截取文本
親,sed的參數用雙引號。我給你的代碼用的是單引號因為你提問時問的是bbbb
而不是$line
sed -n '/^'"$line"'$/,$p'
單引號內不會發生變數擴展
雙引號會發生變數擴展,但是$屬於元字元所以需要轉義。
小米飛貓的回答也是不對的,因為$/ $p會被shell替換成空字元串。並沒有傳遞給sed命令。