Linux經常使用命令小結(續)

 20. mysqljava

mysql --host=127.0.0.1 --port=3306 --database=test --user=test --password=test --default-character-set=utf8mysql

mysql -h127.0.0.1 -P3306 -uxxx  -pxxx --database testdbsql

1)導出數據庫為dbname的表結構(其中用戶名為root,密碼為dbpasswd,生成的腳本名為db.sql)
    mysqldump -uroot -pdbpasswd -d dbname >db.sql;

2)導出數據庫為dbname某張表(test)結構
    mysqldump -uroot -pdbpasswd -d dbname test>db.sql;

3)導出數據庫為dbname全部表結構及表數據(不加-d)
    mysqldump -uroot -pdbpasswd  dbname >db.sql;

4)導出數據庫為dbname某張表(test)結構及表數據(不加-d)
    mysqldump -uroot -pdbpasswd dbname test>db.sql;數據庫

5)導入數據庫中,登陸MySQL,執行source命令,後面的文件名要用絕對路徑.工具

mysql> source /tmp/db.all.sql;

21. 腳本求兩個文件的相同集合spa

test1   test2 code

1           2xml

2           3blog

3           4get

cat test1 test2 | sort | uniq -d (result: 2 3)

cat test1 test2 | sort | uniq -c | wc -l (result:4) 統計全部出現數字的個數

cat test1 test2 | sort | uniq -c |awk -F ' ' '{print $1}'|grep 2|wc -l 連續出現兩次的個數

22. 生成1到10的數字

 for i in `seq 10`
do

     echo $i
 done

23. 經過腳本生成sql語句

date=`date -d yesterday +%Y-%m-%d`
outputFileName="sql.${date}"
cat test1 | awk 'BEGIN{datecmd="date -d yesterday +%Y-%m-%d";datecmd|getline dateStr}{print "INSERT INTO test (dayString, num1, num2, num3) VALUES ('\''"dateStr"'\'', 0, "$1", "$1") ON DUPLICATE KEY UPDATE num2 = "$1", num3 = "$1";"}' > ${outputFileName}

 生成的結果:INSERT INTO test (dayString, num1, num2, num3) VALUES ('2014-06-07', 0, 1, 1) ON DUPLICATE KEY UPDATE num2 = 1, num3 = 1;
INSERT INTO test (dayString, num1, num2, num3) VALUES ('2014-06-07', 0, 2, 2) ON DUPLICATE KEY UPDATE num2 = 2, num3 = 2;
INSERT INTO test (dayString, num1, num2, num3) VALUES ('2014-06-07', 0, 3, 3) ON DUPLICATE KEY UPDATE num2 = 3, num3 = 3;

插入數據庫的話能夠用腳本:mysql -h127.0.0.1 -P3306 -utest -ptest --database  testdb < ${outputFileName}

24. awk

1)統計次數

test3

a=優秀

b=良好

b=優秀

c=良好

cat test3 | awk -F "=" '{sum[$1]+=1}END{for(i in sum)print sum[i],i}'

cat test3 | awk -F "=" '{sum[$2]+=1}END{for(i in sum)print sum[i],i}'

result1:                 result2:                 result3:

2 優秀                    1 a                       a=優秀
2 良好                    2 b                       b=良好

                            1 c                        c=及格

2) 提取20:1:0:0:{a=優秀, b=良好, c=及格} 裏面的{}數據

cat test4 | awk 'BEGIN {FS=":"} {print $5}' | sed -e "s/[\{\}]//g" | awk '{split($0, items, ", ");for(it in items){print items[it]}}'

 25. sed

sed是一個強大的文本工具,這裏舉一個替換配置文件的例子

from=1001
for i in {1002..1006} ; do
    cat test-${from}.xml | sed -e "s/${from}/${i}/g" > test-${i}.xml
done;

26. 文件格式轉換

iconv -f from-encoding -t to-encoding inputfile -o outputfile

相關文章
相關標籤/搜索