[置頂]Shell碎碎念
str="This is a Bash Shell script."
1> tr方式
newstr=`tr '[A-Z]' '[a-z]' <<<"$str"`或者 newstr=$(echo $str |tr '[a-z]' '[A-Z]')
2> typeset
typeset -u VARIABLE (把VARIABLE的小寫轉換成大寫)
typeset -l VARIABLE (把VARIABLE的大寫轉換成小寫)
如:
[[email protected] ~]$ typeset -u str
[[email protected]
[[email protected] ~]$ echo $str
THIS IS A BASH SHELL SCRIPT.
2. 判斷變數中是否包含某個字串
str="this is a string"
[[ $str =~ "this" ]] && echo "\$str contains this"
3. 將文字檔案的內容按行儲存到陣列中
#!/bin/bash i=0 while read line do a[$i]="$line" i=$[$i+1] done < dept.txtfor (( i=0; i<3; i++ )) do echo "${a[$i]}" done
注意:在這裡就不要用 cat dept.txt |while read line了,因為管道的命令都是在子Shell中執行的,這意味著在子Shell中賦值的變數對父Shell是無效的。在本例中,該指令碼無法讀取賦給陣列的值。
4. 昨天的日期
date -d "1 day ago" "+%Y-%m-%d"
date -d last-day +%Y-%m-%d
5. 指定日期的後一天
date -d "20150303 1 days" +%Y%m%d
6. awk將最後一行的每一列分行列印
awk 'END{for(i=1;i<=NF;i++){printf "%s\n",$i}}'
7. AWK去掉空格
1> sub(/^[[:blank:]]*/,"",變數) 是去掉變數左邊的空白符
sub(/[[:blank:]]*$/,"",變數) 是去掉變數右邊的空白符
gsub(/[[:blank:]]*/,"",變數) 是去掉變數中所有的空白符
譬如:echo " hello world " | awk '{gsub(/[[:blank:]]*/,"",$0);print "|" $0 "|"}'
|helloworld|
2> echo " hello world " | awk '{sub("^ *","");sub(" *$","");print "|" $0 "|"}'
|hello world|
8. shell中如何實現數值向上取整
a=1.1
echo $a|awk '{print int($a)==$a?$a:int($a+1)}'
9. 如何顯示Shell指令碼的執行過程
1> sh -x 1.sh
2>
#!/bin/bash -x word1=Hello word2=World echo $word1 $word2
執行結果如下:
[[email protected] ~]$ ./1.sh -->>注意執行的方式,如果是sh 1.sh則沒有這種效果 + word1=Hello + word2=World + echo Hello World Hello World
3> 只希望一部分顯示執行過程,可使用set -x 和set +x
[[email protected] ~]$ cat 1.sh #!/bin/bash set -x word1=Hello word2=World set +x echo $word1 $word2
[[email protected] ~]$ ./1.sh + word1=Hello + word2=World + set +x Hello World
10. > /dev/null 2>&1
將標準輸出和標準錯誤重定向到/dev/null中
11. 陣列
$ fruits[0]="Apple" $ fruits[1]="Grape" $ fruits[2]="Orange" $ echo "${fruits[0]} ${fruits[1]} ${fruits[2]}" Apple Grape Orange $ fruits=("Apple" "Grape" "Orange") -->> 如何對陣列進行賦值 $ echo "${fruits[0]} ${fruits[1]} ${fruits[2]}" Apple Grape Orange $ echo "${#fruits[@]}" -->> 如何獲取陣列的個數 3 $ echo "${fruits[@]}" -->> 如何獲取陣列的值 Apple Grape Orange
12. 如何用grep去掉空格和註釋
grep -Ev "^$|^#" db_install.rsp
13. 如何找出tkprof命令生成的outputfile中的select語句
awk 'BEGIN{i=0;j=0}{if($0~"select"){i=NR;j=NR;print "\t"}if($0~/^$/) j=NR;if(i==j) print $0 }' 1.txt
因為select語句沒有寫在一行,且select語句結束以後會有空行,所以解決的思路是列印select及select以下的行,直到空行。所以當碰到select語句的時候,將行值賦給i和j,當碰到空行時,將行數賦給j,這樣j就發生了改變。判斷是否列印所在行的值就看i和j是否相等。
這樣打印出來的內容會有點難看,select和select語句之間沒有空行,所以在碰到select的時候就列印一個空行。
注意:判斷空行的寫法/^$/,BEGIN{i=0;j=0}代表將i和j初始化為0,如果沒有BEGIN語句,則處理每一行的時候i和j的值都會重置為0。
14. 在第三行行尾新增;號
sed -ie '3s/$/;/'
相關推薦
[置頂]Shell碎碎念
1. 字串如何大小寫轉換 str="This is a Bash Shell script." 1> tr方式 newstr=`tr '[A-Z]' '[a-z]' <<<"$str"`或者 newstr=$(echo $str |tr '[
[置頂]Linux碎碎念
在學習Linux過程中,有許多有用的小技巧。如果放在紙質的筆記本上,平時查閱會相當不方便。現在以一種“碎碎念”的方式,彙集整理在此,目前還不是很多,但隨著學習、工作的深入,後續會陸陸續續新增更多的小技巧。 1. 配置ssh的等效性 ssh-copy-id -i /ro
項目管理碎碎念系列之一:幹系人管理
關系 mbo ans con lock iar odi 所在 alt 初次見到“項目幹系人”這個詞,我是有點蒙圈的,因為這不太符合中文平時的表達。 其實所謂“項目幹系人”,英文稱作“Project Stakeholder”,翻譯成利益相關者,對其含義就一目了然
碎碎念
ava 自己 來講 ont 保存 。。 朋友 的人 無用功 我想我應該停下來,總結一下這開學兩個月半以來,自己所經歷的事情和我所有的心情。以前的時候心情不好的時候就會發在微博上,因為感覺微博上自己認識的身邊的人很少,我可以毫無忌憚的發泄自己的情緒,或者說是對一些人掩蓋一下糟
CAP碎碎念
cluster 請求響應 watermark ear mar 部署 doc 性能 生成報表 整個2017年都在搞大數據平臺,完全遠離了機器學習,甚至都不記得寫過類似ETL的job。 從數據到平臺,從業務處理到基礎服務。 Metrics的收集,報警,生成報表。Data pip
一個十二年老程序猿的碎碎念h5牛牛程序出售
存儲 自然 第一個 進修 為我 計劃 朋友 不知道 acl 我是一名程序猿,在上95年上初中的時候h5牛牛程序出售(http://h5.hxforum.com) 聯系方式170618633533企鵝2952777280 源碼出售 房卡出售 後臺出租有意者私聊扣扣,別的還在
2018第一篇碎碎念
繼續 技術文章 能說 很多 leader 沒有 要花 註冊 一次 不知不覺博客園都註冊了3年多了,但實際做技術並沒有這麽久。 2016年大三下學期,老師的推薦意外在武漢接觸到前端,現在想起來我還是我們班上最早接觸到前端的人,而如今一晃,轉眼間接觸前端也算2
crawler碎碎念5 豆瓣爬取操作之登錄練習
保存 網頁 utf 程序 val with open 平臺 xxxxxxxx edi import requests import html5lib import re from bs4 import BeautifulSoup s = requests.Sess
碎碎念201808
換了三家公司,到了一家半,人生咋個這麼艱辛。 入職的第二週,很充實。第一週,爬蟲看的我七葷八素,不過至少反爬蟲不是很犀利的網站資料都可以嘗試爬一下吧。這麼剛剛還把證監會上面銀行的資料爬了下來。 這樣的充實很難說是一種自我滿足,畢竟做的事情和我之前的有差距,和我的興趣有偏離。但
crawler碎碎念6 豆瓣爬取操作之獲取資料
import requests from lxml import etree s = requests.Session() for id in range(0,251,25): url ='https://movie.douban.com/top250/?start-'+str(i
2017/2/13的碎碎念
從開始工作到現在,已經過去了一年半,近期想轉行,遂記下這一年半的時間裡的各種碎碎。 說實話一年半里專業水平在專案中提升不是很多,由於業務強烈依賴高通,好多內容對新手來說不是很容易上手,摻雜了很多底層知識。公司裡的培訓相對又較少,造成自己對業務無法形成系統性的認知,也基本沒有
資料的範圍 碎碎念
實際上該篇文章的定位還是蠻高的,就像計算機網路中的特殊地址一樣,是不是幾乎每年必考?在計算機組成這門課裡,資料的範圍通常會以小題的形式考察,但不排除例外,2017年408真題簡直重新整理了我的三觀,原來資料如此有趣!這是2019年,表示考408的我有點惶恐。。 首先,我覺得有必要說明幾個概念:
演算法提高 分分鐘的碎碎念
問題描述 以前有個孩子,他分分鐘都在碎碎念。不過,他的念頭之間是有因果關係的。他會在本子裡記錄每一個念頭,並用箭頭畫出這個念頭的來源於之前的哪一個念頭。翻開這個本子,你一定會被互相穿梭的箭頭給攪暈
2018icpc南京站碎碎念
直接說結果吧,一題滾粗,全場倒數,相當悽慘。 時間軸拉遠一點,從選賽區開始說起吧。在八月初從camp回來時開始考慮選賽區,我的意見是有兩個站絕對不打——吉林和焦作,前者是因為太早,只有不到兩個月的準備時間,而自己還那麼菜,好多技能都沒點亮,去了不是送死嗎
DataTables碎碎念-初始化一個常用的DataTables
ajax請求,動態分頁 $('#activity_statistics_list_table').DataTable( { lan
ACM 退役 碎碎念
恩,到今年所有東西寫的都還是ACM-ICPC 從去年開始,我們就一路踩線前進,一直到現在 不過一切都結束了 ---------------------------------- 記錄一下ACM的全過程吧 2016/1~2 ICPC Camp 當時和yjz csl組隊去打ICPC Camp,我熱身
日常碎碎念——程式設計師的身體健康問題
最近公司組織體檢,雖說可能是不太嚴謹的,但是基本的身體問題也是可以看出來的。聯絡到最近的事件,真的感覺生命很重要,要珍惜眼前的點點滴滴,熱愛生命。程式設計師這個工作就是高薪且普遍加班,很少運動,導致身體健康問題的出現甚至是猝死事件的發生。每每看到這些事情,都會告
碎碎念android eMMC【轉】
本文轉載自:https://blog.csdn.net/Fybon/article/details/44242549 一、/dev/block[email protected]:/dev/block #lsbootdevicemmcblk0mmcblk0p1mmcblk0p10…….mmcblk0
圖解前的碎碎念
圖解前的碎碎念: 昨夜吃餃子蘸醋,俄然就想起了這部電影來(沒錯樓主就是這麼重口味+善於聯想),所以說解就解沒商量~ 老規矩,仍是提幾點要求先: 一、歡迎友善交流討論,槓精和“專心潑冷水一百年”黨、“除了挑劇情BUG外啥都不會”黨、“站著說話不腰疼”黨以及“留言只會用反問句和質疑口吻”黨請主動退散,(
Google系統管理員的技巧分享與碎碎念
本文是Google系統管理員Tom Limoncelli在其個人部落格上總結的一些零碎的工作心得技巧和碎碎念(其實整篇文章就是個碎碎念集合)。內容比較雜,希望對你有所啟發!以下為全文翻譯: ◆在Mac中,如果按住Shift並單擊視窗上的綠色圓點,則實現了該視窗最大化功能,即代替了應用程式預設的操作。