shell陣列處理
[[email protected] ~]$ echo $a
1 一對括號表示是陣列,陣列元素用“空格”符號分割開。 2.陣列讀取與賦值
- 得到長度:
[[email protected] ~]$ echo ${#a[@]}
5
用${#陣列名[@或*]} 可以得到陣列長度
- 讀取:
[[email protected] ~]$ echo ${a[2]}
3
[[email protected]5 ~]$ echo ${a[*]}
1 2 3 4 5
用${陣列名[下標]} 下標是從0開始 下標是:*或者@ 得到整個陣列內容
- 賦值:
[[email protected] ~]$ a[1]=100 [[email protected] ~]$ echo ${a[*]}
1 100 3 4 5 [[email protected] ~]$ a[5]=100
[[email protected] ~]$ echo ${a[*]} 1 100 3 4 5 100 直接通過 陣列名[下標] 就可以對其進行引用賦值,如果下標不存在,自動新增新一個數組元素
- 刪除:
[[email protected] ~]$ a=(1 2 3 4 5)
[[email protected] ~]$ unset a
[[email protected] ~]$ echo ${a[*]} [[email protected] ~]$ a=(1 2 3 4 5)
[[email protected] ~]$ unset a[1]
[[email protected] ~]$ echo ${a[*]}
1 3 4 5
[[email protected] ~]$ echo ${#a[*]}
4
直接通過:unset 陣列[下標] 可以清除相應的元素,不帶下標,清除整個資料。3.特殊使用
- 分片:
[[email protected] ~]$ a=(1 2 3 4 5)
[[email protected] ~]$ echo ${a[@]:0:3}
1 2 3
[[email protected] ~]$ echo ${a[@]:1:4}
2 3 4 5
[[email protected] ~]$ c=(${a[@]:1:4})
[[email protected] ~]$ echo ${#c[@]}
4
[[email protected] ~]$ echo ${c[*]}
2 3 4 5
直接通過 ${陣列名[@或*]:起始位置:長度} 切片原先陣列,返回是字串,中間用“空格”分開,因此如果加上”()”,將得到切片陣列,上面例子:c 就是一個新資料。
- 替換:
[[email protected] ~]$ a=(1 2 3 4 5)
[[email protected] ~]$ echo ${a[@]/3/100}
1 2 100 4 5
[[email protected] ~]$ echo ${a[@]}
1 2 3 4 5
[[email protected] ~]$ a=(${a[@]/3/100})
[[email protected] ~]$ echo ${a[@]}
1 2 100 4 5
呼叫方法是:${陣列名[@或*]/查詢字元/替換字元} 該操作不會改變原先陣列內容,如果需要修改,可以看上面例子,重新定義資料。
相關推薦
shell陣列處理
linux shell在程式設計方面比windows 批處理強大太多,無論是在迴圈、運算。已經資料型別方面都是不能比較的。 下面是個人在使用時候,對它在陣列方面一些操作進行的總結。 1.陣列定義 [[email protected] ~]$ a=(1 2 3
shell習題-處理日誌
shell寫一個腳本查找/data/log目錄下,最後創建時間是3天前,後綴是*.log的文件,打包後發送至192.168.1.2服務上的/data/log下,並刪除原始.log文件,僅保留打包後的文件#!/bin/bash find /data/log -name “*.log” -mtime +3 &g
shell:處理文本
awk 去重復 als for ash bin class one 如果 有如下文本,其中前5行內容為1111111:134432534562222222:132112221221111111:136435435443333333:123412431232222222:12
shell中處理使用者輸入
1、使用命令列引數 在shell執行的時候命令列中輸入的所有引數可以賦值給一些特殊變數,這些變數成為位置變數引數。 包括: $0返回指令碼名稱、$1為第一個引數、$2為第二個引數 ...$9第九個引數 在變數到9個之後,必須使用大括號將變數括起來 ${10}第十個引數 $#是獲取傳入的引數數量 $*是獲取所
HDU1042 N!陣列處理大數
***a[i][]表示的是i!,每一個a[i][j]存放一個小於10000。 ***用w[i]跟隨記錄數的長度。 ***10000!是一個35660位數 #include <iostream> #include <cstdio> #incl
shell 文字處理——使用awk格式化時間戳
date -d @時間戳 "+%Y-%m-%d %H:%M:%S" 也可以內建函式 awk '{print strftime("%Y-%m-%d %H:%M:%S", $1)}' 如果是毫秒級的時間戳要先除以1000; 在 shell 中這樣子處理: awk '{print $1",
31. Next Permutation-- 陣列處理題
竟然被這麼一道簡單題折騰了好久,WA了很多次。 演算法: 從後往前找,找到a[i-1] 時,從i 到len 中 最小的 但大於 a[i-1]的數,並且交換。 交換後把i 到 len 進行排序。 code 如下: 一開始下標沒處理好,21行少了個break, 只得讓24行變成 i+2 ,但這
js中關於陣列處理的一些小技巧
1 reduce方法同時實現map和filter 假設現在有一個數組,然後遍歷它的每一項(map的功能)然後篩選出其中的一部分(filter的功能)。如果使用map和filter的話,我們需要遍歷這個陣列兩次。 在下面的程式碼中,我們將數列中的值翻倍,然後挑選出那些大於50的數: const nu
典型陣列處理程式碼
package com.arithmetic; import java.util.Arrays; public class Array { // 獲得陣列最大值 public static double getMaxValue(double[] array) {
shell 指令碼的一些常用命令 set, export, shell陣列,esac, tee,time
1. set Linux set命令用來設定 shell ,設定使用shell的執行方式。 引數說明 -a 標示已修改的變數,以供輸出至環境變數。 -b 使被中止的後臺程式立刻回報執行狀態。 -C 轉向所產生的檔案無法覆蓋已存在的檔案。 -d She
shell陣列程式設計
參考連線 https://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html linux shell 陣列建立及使用技巧linux shell在程式設計方面比windows 批處理強大太多,無論是在迴圈、運算。已經資料型別方面都是不能比較的。 下
Shell正則表示式 & Grep正則表示式 & shell字串處理
摘自:https://www.cnblogs.com/hoji-real/articles/2311214.html Shell正則表示式 一個正則表示式就是由普通字元(例如字元 a 到 z)以及特殊字元(稱為元字元)組成的文字模式。該模式描述在查詢文字主體時待匹配的一個或
Shell陣列和函式
陣列中可以存放多個值。Bash Shell 只支援一維陣列(不支援多維陣列)。 Shell 陣列用括號來表示,元素用"空格"符號分割開,語法格式如下: array_name=(value1 ... valuen) 2.陣列常用操作 1)定義一個數組: myarray=(1 2 3 4 5);
shell 陣列遍歷的3種方法
shell陣列的
shell 陣列例項
ary=(1 2 3) a=2 if [[ "${ary[@]}" =~ "$a" ]] ; then echo "a in ary" else echo "a not in ary" fi 獲取陣列長度echo
02-shell文字處理三劍客之sed
sed 是流編輯器,但是它不會修改原始檔。 sed (流文字編輯器) 用法:sed OPTIONS… [SCRIPT] [INPUTFILE…] -r: 使用擴充套件的正則表示式; -n, –quiet, –silent: 不輸出模式空間的內容; -i:直接編輯原檔案; -
01-shell文字處理三劍客之grep
開篇:哈嘍,今天我想寫寫shell程式設計,打算平均一天一篇吧,這樣一個月後就可以進步比較多。 先從shell文字處理三劍客grep、sed、awk開始。聽說啊,要是我不會這個命令,就不好意思說自己會shell程式設計。 1 grep是什麼意思? grep: Global se
利用陣列處理Fibonacci數列問題
#include<stdio.h> int main() { int i,f[20]={1,1}; //建立迴圈變數,並且為陣列的前2位數賦值。 for(i=2;i<=20;i++) //設立個18次的迴圈 f
awk基礎篇——Shell 文字處理利器
awk sed傾向於以行為單位進行處理,而awk更擅長將一行分為幾段進行處理。 awk的語法 awk用法 | awk '條件型別1{動作1} 條件型別2{動作2} ...' awk '條件型別1{動作1} 條件型別2{動作2} ...' fil
Linux Shell 文字處理工具集錦(重點推薦)
依稀記得某人曾今問過關於linux中的高階用法,當時覺得一臉懵逼,後來才發現,所謂的高階用法,無非是可以被python替換的shell基礎指令碼,及處理10GB資料量以下的linux基礎命令。現在看到了就整理了一下。 1.shell特殊符號