Shell中字符串排序的幾種方法
【方法一】按ASCII正向排序
備注:
1) tr將子字符串中的空白轉換為換行符,再用sort排序
2) sort無參的話,默認按ASCII正向排序
【方法二】按ASCII正向排序
備注:
1) -r參數: ?按ASCII碼反向排序
2) 在使用sort,uniq等組合命令時候
【方法三】按自然數順序排序
備注:
1) -n參數: ?按自然數的順序來排序
2) 如果不加-n參數的話,默認是按1,2,3..9的順序排列,即使101也是排在2之前
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支持。如果你想了解更多相關內容請查看下面相關鏈接
時間: 2019-03-05
在Shell中可以使用下列方式來做整數的計算(+,-,*,/) 方式一: linux:~ # A=1 linux:~ # B=2 linux:~ # C=$(($A+$B)) linux:~ # echo $C 3 方式二: linux:~ # A=1 linux:~ # B=2 linux:~ # C=$[$A + $B] linux:~ # echo $C 3 方式三: linux:~ # A=1 linux:~ # B=2 linux:~ # C=`expr $A + $B` linux:
1.腳本功能:提示客戶屬于一串數字,并判斷用戶是否進行了輸入,輸入的是否為數字 #!/bin/bash read -p "enter a number: " number #提示用戶輸入數字 if [ -z $number ];then #判斷用戶是否輸入,如果未輸入則打印error echo "Error" exit else jieguo=`echo "$number*1" | bc ` #把用戶的輸入值和1相乘,交給bc做運算 if [ $
我們知道,在Shell中接收傳入的參數有兩種方式.一種是通過腳本進行參數傳遞,另外一種是通過read來接收傳入的參數.通過腳本來傳遞參數的簡單示例如下: # 通過腳本來傳遞,這里$0指腳本名,$1為第一個參數,$2為第二個參數 [root@host ~]# ./script.sh 1 2 Total = 3 [root@host ~]# vim script.sh #!/bin/bash function add() { total=$(expr $1 + $2) echo -e "Total
在Linux系統中,許多命令都提供了選項,使用不同的選項就會得到不通的執行結果 例如:ls命令,ls命令提供了多個選項:-l.-a.-A.-h.-i等等,每個選項具有不同的功能,我們自己寫腳本時也可以定義選項,提示用戶如何使用,本文介紹如何使用getopts命令來處理命令選項. 1.getopts命令的如何使用: 用getopts命令獲取到腳本選項后,getopts會將獲取到的選項所對應的參數(選項對應的參數,并不是選項本身,有的命令選項后面是需要跟一個參數的,例如tcpdump 的-w選項,后
管道經常用于拼接命令,通過管道可以執行一些復雜的數據處理操作.以下為在shell中使用管道處理數據的的幾個實例 示例1:生成一個8位的隨機密碼 tr -dc A-Za-z0-9_
1.for循環對目錄做遍歷,if判斷文件是否為要查找的文件. 示例1: #!/bin/bash if [ $# -lt 1 ];then echo "Usage:$0 + filepath" exit fi #判斷用戶是否輸入了參數 match=$1 #將要查的文件賦值給變量match found=0 #定義一個初始變量作為發生條件,當文件找到時對此變量重新賦值 for file in /etc/* #對目錄進行遍歷 do if [ $file == $match ];then #判斷
從文件逐行讀取數據的方法有兩種,一種是在while循環或until循環中使用read命令,通過文件描述符一行一行的讀取文件內容:另一種是在for循環中使用cat 來讀取文件的內容. 1.使用for循環從文件中逐行讀取內容:在默認情況現下此方法是逐個單詞的讀取文件內容,因為使用這種方法讀取文件時,他使用環境變量IFS的值作為分隔符,由于IFS的默認值是"""""&l
1.當一個腳本需要傳入的參數較多時,可以使用for循環進行參數遍歷 示例: #!/bin/bash number=65 #定義一個退出值 index=1 #定義一個計數器 if [ -z "$1" ];then #對用戶輸入的參數做判斷,如果未輸入參數則返回腳本的用法并退出,退出值65 echo "Usage:$0 + canshu" exit $number fi echo "listing args with \$*:" #在屏幕輸入,在$*
語法格式:awk [選項]? '指令'? 操作文件 常用選項:-F? 指定分隔符,分隔符用""引起來 -v:var=value在awk程序開始之前指定一個值valu給變量var,這些變量值用于awk程序的BEGIN快 -f:后面跟一個保存了awk程序的文件,代替在命令行指定awk程序 實例1:在命令行直接輸入awk指令 awk '{print}' 1.txt #逐行讀取文件1.txt內容并打印 awk '{print $0}' 1.txt #逐行讀取文件內容,并打印該行,$0保存的是當
1.利用while循環計算1到100的和: 示例代碼1: #!/bin/bash i=1 sum=0 while [ $i -le 100 ] do let sum=sum+$i let i++ done echo $sum 示例代碼2:利用while循環計算1到100之間所有奇數之和 #!/bin/bash i=1 sum=0 while [ $i -le 100 ] do let sum=sum+$i let i+=2 done echo $sum 示例代碼3:利用while循環計算1到10
前言 相信大家應該都知道在java編程中,有時候我們需要把一個字符串按照某個特定字符.字母等作為截點分割這個字符串,這樣我們就可以使用這個字符串的一部分或者把所有截取的內容保存到數組里等操作.下面這篇文章就給大家分享了兩種分割的方法,下面來一起看看吧. 一.java.lang.String 的 split() 方法, JDK 1.4 or later public String[] split(String regex,int limit) 示例代碼 public class StringSpl
一.Timer Timer是Android直接啟動定時器的類,TimerTask是一個子線程,方便處理一些比較復雜耗時的功能邏輯,經常與handler結合使用. 跟handler自身實現的定時器相比,Timer可以做一些復雜的處理,例如,需要對有大量對象的list進行排序,在TimerTask中執行不會阻塞子線程,常常與handler結合使用,在處理完復雜耗時的操作后,通過handler來更新UI界面. timer.schedule(task, delay,period); task: Time
java 中基本算法之希爾排序的實例詳解 希爾排序(Shell Sort)是插入排序的一種.也稱縮小增量排序,是直接插入排序算法的一種更高效的改進版本.希爾排序是非穩定排序算法.該方法因DL.Shell于1959年提出而得名. 希爾排序是把記錄按下標的一定增量分組,對每組使用直接插入排序算法排序:隨著增量逐漸減少,每組包含的關鍵詞越來越多,當增量減至1時,整個文件恰被分成一組,算法便終止. 基本思想:算法先將要排序的一組數按某個增量d(n/2,n為要排序數的個數)分成若干組,每組中記錄的下標相差
這篇文章主要介紹了JavaScript復制變量三種方法實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下 直接將一個變量賦給另一個變量時,系統并不會創造一個新的變量,而是將原變量的地址賦給了新變量名.舉個栗子: 復制代碼 復制代碼 let obj = { a: 1, b: 2, }; let copy = obj; obj.a = 5; console.log(copy.a); // Result // a = 5; // 更改obj的值,
thinkphp中的多表關聯查詢的實例詳解 在進行后端管理系統的編程的時候一般會使用框架來進行頁面的快速搭建,我最近使用比較多的就是thinkphp框架,thinkphp框架的應用其實就是把前端和后端進行分割管理,前端用戶登錄查詢系統放在thinkphp中的home文件夾中進行管理,后端管理系統放在thinkphp中的admin文件夾中進行管理.對了,在使用thinkphp框架的時候是是要用到mvc架構的,mvc架構就是model(數據模型).view(視圖).controller(控制器)的結
Shell執行/調用Java/Jar程序例子的實例詳解 前言: 最近要寫一個獨立的Java程序去監控Hadoop和Oozie,通過Shell去調用.寫代碼到現在也4年多了,貌似就從來沒在生產環境中寫過一個獨立的Java程序,不是部署到Tomcat就是直接丟給Hadoop.于是參考Hadoop等開源環境,自己寫了一個demo,并且可以通過Ant打包生成可運行的程序.所以這里有三步:Java程序,Shell,Ant ???? 1.首先建立Java程序,由于是例子,所以這里很簡單,只是輸出傳入參數的個
IOS自帶Email的兩種方法實例詳解 IOS系統框架提供的兩種發送Email的方法:openURL 和 MFMailComposeViewController.借助這兩個方法,我們可以輕松的在應用里加入如用戶反饋這類需要發送郵件的功能. 1.openURL 使用openURL調用系統郵箱客戶端是我們在IOS3.0以下實現發郵件功能的主要手段.我們可以通過設置url里的相關參數來指定郵件的內容,不過其缺點很明顯,這樣的過程會導致程序暫時退出.下面是使用openURL來發郵件的一個小例子: #pr
JSP 中Spring組合注解與元注解實例詳解 摘要: 注解(Annotation),也叫元數據.一種代碼級別的說明.它與類.接口.枚舉是在同一個層次.它可以聲明在包.類.字段.方法.局部變量.方法參數等的前面,用來對這些元素進行說明 1. 可以注解到別的注解上的注解稱為元注解,被注解的注解稱為組合注解,通過組合注解可以很好的簡化好多重復性的注解操作 2. 示例組合注解 import org.springframework.context.annotation.ComponentScan; im
Android 打包三種方式實例詳解 前言: 現在市場上很多app應用存在于各個不同的渠道,大大小小幾百個,當我們想要在發布應用之后統計各個渠道的用戶下載量,我們就要進行多渠道打包. 01.應用的打包簽名什么是打包? 打包就是根據簽名和其他標識生成安裝包. 簽名是什么? 1.在android應用文件(apk)中保存的一個特別字符串 2.用來標識不同的應用開發者:開發者A,開發者B 3.一個應用開發者開發的多款應用使用同一個簽名 就好比是一個人寫文章,簽名就相當于作者的署名. 如果兩個應用都是一