1. 程式人生 > >shell中EOF等用法總結

shell中EOF等用法總結

最近由於工作需要寫了一個處理資料的指令碼,有幾個用法在此記錄一下。下面是程式碼

#!/bin/bash


if [[ -z $userDir ]]
then
    export userDir="/tmp/"
fi

if [[ -z $spotDir ]]
then
    export spotDir="/data/faust/data/invent_lac/removespot/spot/"
fi

USER="root"
PASSWORD="hgkf.8888"
DATABASE="tourism"
HOST="192.168.100.11"

function hand_time()
{
    currentStamp=`date +%s`
    lastStamp=$((currentStamp-24*3600))
    standard=`date -d @"$lastStamp" +"%Y%m%d"`
    standardTime=`date -d @"$lastStamp" +"%Y-%m-%d"`
    standardTime="$standardTime 00:00:00"
    usableStamp=`date -d "$standardTime" +%s`
    #echo $standard
    #echo $standardTime
    #echo $usableStamp

    cat ${spotDir}spot_$standard*|awk -F "," '{print$1}'|sort -u|sed 's/^/0,/g'|sed 's/$/',$usableStamp'/g' >${userDir}alluser.csv
    cat ${spotDir}spot_$standard*|awk -F "," '{print$2","$1}'|sort -u |sed 's/$/',$usableStamp'/g' >${userDir}scenic.csv

}

function hand_user_data()
{
    hand_time
    allSql="load data infile '${userDir}alluser.csv' into table to_user_data fields terminated by ',' optionally enclosed by '\\\"' escaped by '\\\"' lines terminated by '\n' (id_marker,phone,ctime);"
    scenicSql="load data infile '${userDir}scenic.csv' into table to_user_data fields terminated by ',' optionally enclosed by '\\\"' escaped by '\\\"' lines terminated by '\n' (id_marker,phone,ctime);"

    scp ${userDir}alluser.csv ${userDir}scenic.csv 192.168.100.11:/tmp/ >${userDir}data.log

    ssh -T 192.168.100.11 <<EOF
    mysql -u$USER -p$PASSWORD $DATABASE -e "${allSql}"
    mysql -u$USER -p$PASSWORD $DATABASE -e "${scenicSql}"
    exit
EOF

}


hand_user_data

#hand_time

解析:

ssh -T 192.168.100.11 <<EOF
    mysql -u$USER -p$PASSWORD $DATABASE -e "${allSql}"
    mysql -u$USER -p$PASSWORD $DATABASE -e "${scenicSql}"
    exit
EOF

中注意

1,ssh -T 加-T的原因是告訴電腦我是在用shell指令碼遠端登入不列印登入資訊

2,第二個EOF一定要在行首,不能有空格或tab鍵,否則會有警告

 cat ${spotDir}spot_$standard*|awk -F "," '{print$1}'|sort -u|sed 's/^/0,/g'|sed 's/$/',$usableStamp'/g' >${userDir}alluser.csv

此句中sort -u排序後去重

sed用法總結

sed '1,1'd  刪除第一行

sed -n '1,3p' 顯示1~3行

sed 's/^/0,/g' 在行首加上0,

sed 's/$/',$usableStamp' 在行尾加上usableStamp的內容

sed 's/\t/,/g‘ 將‘\t’轉換成“,”,此句在處理mysql查詢結果時經常用到

相關推薦

shellEOF用法總結

最近由於工作需要寫了一個處理資料的指令碼,有幾個用法在此記錄一下。下面是程式碼 #!/bin/bash if [[ -z $userDir ]] then     export userDir="/tmp/" fi if [[ -z $spotDir ]] then  

【轉載】shellEOF用法

shel mys only 輸入 sele eof mar 用法 passwd Shell中通常將EOF與 << 結合使用,表示後續的輸入作為子命令或子Shell的輸入,直到遇到EOF為止,再返回到主調Shell。可以把EOF替換成其他東西意思是把內容當作標準輸

shell seq的用法總結

用法:seq [選項]... 尾數  或:seq [選項]... 首數 尾數  或:seq [選項]... 首數 增量 尾數 以指定增量從首數開始列印數字到尾數。   -f, --format=格式 使用printf 樣式的浮點格式   -s, --separator=字

OracleMerge into用法總結 (轉載)

字符 存在 sin 刪除 ron mic 但是 多個 前段時間 Oracle中Merge into用法總結 (出處:http://www.cnblogs.com/dongsheng/p/4384754.html) 起因:   前段時間,因為涉及到一張表的大數據操作,要同時

Javastatic關鍵字用法總結

副本 大括號 跟著 rac clas main 靜態成員變量 abstract 全局變量 1. 靜態方法 通常,在一個類中定義一個方法為static,那就是說,無需本類的對象即可調用此方法 聲明為static的方法有以下幾條限制: · 它們僅能調用其他的sta

linux bash shellfor的用法and示例

bash shell腳本中for的用法關於linux bash shell中的for語句 在linux中shell是必不可少的一部分,但是在bash shell中有while,for,until等循環命令,今天就介紹一下關於for的一些用法。文中任何錯誤希望大佬們一一指出,不勝感激。bash sh

shell seq的用法 echo -n用法

字符串 one 一個 echo ddd ech 換行 shel ron 用法:seq [選項]... 尾數 或:seq [選項]... 首數 尾數 或:seq [選項]... 首數 增量 尾數 從1循環到100的兩種方法(bash 其它的shell沒試過)for x i

shell】Linux shell括號的用法

linux shell 中括號 運維 編程 Linux shell中括號的用法 概述 本文主要介紹Linux中括號的用法,主要包含判斷文件和變量。 **註意事項**:中括號兩邊必須有空格。 使用中括號會涉及到的知識 &&、|| 在本文對文件或

bash shell的特殊用法

知識 padding OS family 路徑 base ont style one 1 ${BASH_SOURCE-$0} 表示當前正在執行的腳本的完整路徑。 2 cd -P 以物理路徑進入 /usr/localhadoop現在鏈到/home/houzhizhen/usr

vuewatch的用法總結

true strong mode 使用 調用 edi 包括 bsp ron   首先確認 watch是一個對象,一定要當成對象來用。 對象就有鍵,有值。   鍵:就是你要監控的那個家夥,比如說$route,這個就是要監控路由的變化,或者是data中的某個變量。   值可

Javafinal的用法總結

++ 標識符 ali 相同 即使 調用方法 理由 new 3.1 1. 修飾基礎數據成員的final 這是final的主要用途,其含義相當於C/C++的const,即該成員被修飾為常量,意味著不可修改。如java.lang.Math類中的PI和E是final

javaenum的用法總結

一、enum的語法與基本作用 建立一個列舉型別需要使用關鍵字enum,隱含了所建立的類都是java.lang.Enum的子類。列舉型別的每一個值都被對映到protect enum(String name, int ordinal);的建構函式中,在這裡列舉的每一個值都被轉換成一個字串

shellIF的用法介紹

一、語法結構 if [ condition ] then      statements  [elif condition      then statements. 

pythonrequests的用法總結

requests是一個很實用的Python HTTP客戶端庫,編寫爬蟲和測試伺服器響應資料時經常會用到。可以說,Requests 完全滿足如今網路的需求 本文全部來源於官方文件 http://docs.python-requests.org/en/master/ 安裝方式一

c++的string用法總結

標準C++中的string類的用法總結 轉自;http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html 相信使用過MFC程式設計的朋友對CString這個類的印象應該非常深刻吧?的確,MFC中的CStri

C# Datatime類用法總結

C# 中Datatime類用法總結  收集了一些記錄下來,這些有的是從網上找的,有些是自己使用到的: DateTime dt = DateTime.Now; dt.ToString();//2005-11-5 13:21:25 dt.ToFileTime().ToString();

轉載:python列表的用法總結

count() 運行 list() 插入字符串 error: count 字符串 xtend err 一、list()函數 ls = list() #創建一個空列表。 st = {1,2,3,"a"} #集合類型 d = {1:"a",2:"b"} #字典類型 t =

shelldate的用法

顯示年月日 date +%F 2018-12-15 指定日期往後推三天 a=date -d "20160508 3 days" "+%Y%m%d" echo $a 輸出結果為 20160511 以今天為基礎,向後推一天 (今天20181215) a=date +%Y%m%d --da

Linux命令列EOF用法

EOF是END Of File的縮寫,表示自定義終止符。 既然自定義,那麼EOF就不是固定的,可以隨意設定別名。 在linux按ctrl-d就代表EOF。 EOF一般會配合cat能夠多行文字輸出. 其用

SpringMVCmvc標籤用法總結

原文 一、<mvc:default-servlet-handler /> web.xml 中的 DispatcherServlet 的配置,使其可以捕獲所有的請求: