歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Linux Shell編程學習札記

Linux Shell編程學習札記

日期:2017/3/1 10:03:58   编辑:SHELL編程

Linux課的幾個Shell編程學習札記。

1、找出文件sample.txt中出現”Linux”的次數

#!/bin/bash
#how many "Linux" in Linux.txt?
grep -o "Linux" Linux.txt | wc -l

2、將/etc/passwd的第一列(用戶名)取出,以”the n account is $usr”顯示每一個用戶名。n表示行數,其中,/etc/passwd以”:”作為分隔符

#!/bin/bash
#find the first column of /etc/passwd
awk -F: '{printf("the %d account is %s\n",NR,$1)'} /etc/passwd

{和}前面的'不能用\替換,否則會出錯。NR是awk自帶的記錄數變量。

awk的相關知識 http://www.linuxidc.com/search.aspx?where=nkey&keyword=5129

3、隔行顯示文件的內容

#!/bin/bash
#print odd row
cat test.txt | awk '{if (NR%2==1) print $0}'

如果要隔行刪除這個文件的內容,那麼可以把輸出重定向,然後刪除原文件

4、刪除當前目錄下非指定日期的文件

#!/bin/sh
ls -1 |while read line
do
month=`echo $line|awk '{print $6}'`
day=`echo $line|awk '{print $7}'
time=echo $line|awk '{print $8}'
file=`echo $linr|awk '{print $9}'
if [ $month="RIGHTMONTH" -a $day="RIGHTDAY" -a $time="RIGHTTIME"
then
continue
else
rm $filr
fi
done

這個最好不要輕易嘗試,我試了下不小心就把所有腳本文件都刪了,在回收站中找不到,應該是進黑洞了,欲哭無淚..

5、掛載/卸載U盤到/mnt/usb

#fidsk -l
#VM->snapshot->找到u盤
#cat /proc/partitions 顯示文件系統
cd /mnt
mkdir usb
sudo mount /dev/sdb1 ./usb #掛載
cd usb
ls -l
cd ..
umount ./usb #卸載

Copyright © Linux教程網 All Rights Reserved