Linux shell一行流程式設計實踐

2022-09-16 05:45:10 字數 1248 閱讀 1775

linux下很多命令用起來真相當方便,尤其是進行批處理操作時。(話說感覺這種程式也不複雜,windows咋一直不搞乙個好用的shell呢)

這裡列出一些實際shell操作的應用場景,具體命令的用法與解釋就不列了,網上有很多很好的教程。

可以當做練習題練練手。

當前目錄下有若干.wma檔案,要把它們批量轉成.***檔案

例: 001.wma -> 001.***

解決方案:

# solution 1

ls * | awk -f '.' '' | bash

# solution 2

ls * | perl -e 'while(<>)' | bash

# solution 3

ls * | perl -e 'while(<>)'

有乙個檔案test.txt,每行內容用\t分隔,要檢視每行有多少列

解決方案:

cat test.txt | awk ''
有乙個檔案file.txt,每一行記錄了乙個檔案路徑,例:

a.txt

b.txt

c.txt

現在要把這些檔案都拷貝到另乙個資料夾target中去

解決方案:

while read f do; cp $f target/$f;done < file.txt
複雜一點,考慮file.txt中的檔案路徑如下,例:

srcdir/a.txt

srcdir/b.txt

srcdir/b.txt

現在要把這些檔案都拷貝到另乙個資料夾target中去(難點在於檔案路徑中包含了兩級目錄,需要先從中提取檔名)

解決方案:

while read f do; echo $f | awk -f '/' '' | bash; done < file.txt
有乙個檔案為file.txt,要把它複製成4份並命名為:file.1.txt, file.2.txt, file.3.txt, file.4.txt

解決方案:

#solution 1

for i in 1 2 3 4;do cp file.txt file.$i.txt;done;

#solution 2

for ((i=1;i<=4;++i));do cp file.txt file.$i.txt;done;

持續更新……

做一行愛一行

2013年9 月30日13 04 34 地點 公司 筆者 小菜 it界高手很多,謙虛進步自己 目前適合 android iphone 在除錯階段 內容 今天是九月的最後一天了,也沒有太多的心思的編寫 了,看看這個月的工作效率,確實不是很高。最近也在看一本書,可能很多的博友都知道這本書的 程式設計師你...

linux shell 將多行檔案轉換為一行

說實話,雖然對shell程式設計包括awk有所了解,但是對sed的多行與一行的處理還是不甚理解,在網上蒐羅了一篇文章覺得還不錯,記錄一下 今天乙個工程師問我,怎麼將乙個檔案中的多行轉換成一行。我給出了如下三種方法 1.採用awk awk begin file 說明 awk預設將記錄分隔符 recor...

linux shell 將多行檔案轉換為一行

1.採用awk awk begin file 說明 awk預設將記錄分隔符 record separator即rs 設定為 n,此行 將rs設定為eof 檔案結束 也就是把檔案視為乙個記錄,然後通過gsub函式將 n替換成空格,最後輸出。2.採用sed sed a n s n t a file 說明...