最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell編程之正則表達(dá)式與文本處理器示例代碼

 更新時(shí)間:2026年06月29日 08:37:50   作者:劉晨鑫1  
正則表達(dá)式是一種用于匹配字符串的強(qiáng)大工具,通過(guò)普通字符和元字符的組合,能夠快速查找、替換或刪除特定字符串,這篇文章主要介紹了Shell編程之正則表達(dá)式與文本處理器的相關(guān)資料,需要的朋友可以參考下

一、正則表達(dá)式

1. 正則表達(dá)式的定義

正則表達(dá)式(Regular Expression) 是一種用于匹配字符串中字符組合的模式。在Linux/Unix系統(tǒng)中,正則表達(dá)式被廣泛應(yīng)用于文本搜索、替換、過(guò)濾等操作。

2. 正則表達(dá)式用途

用途說(shuō)明常用工具
文本搜索在文件中查找匹配特定模式的文本grep、egrep
文本替換將匹配的文本替換為指定內(nèi)容sed、vim
文本過(guò)濾提取符合條件的文本行awk、grep
數(shù)據(jù)驗(yàn)證驗(yàn)證輸入格式(如郵箱、手機(jī)號(hào))腳本編程
日志分析從日志中提取關(guān)鍵信息awk、sed

二、基礎(chǔ)正則表達(dá)式

1. 基礎(chǔ)正則表達(dá)式示例

示例1:匹配特定字符

#!/bin/bash
# 創(chuàng)建測(cè)試文件
cat > test.txt << EOF
hello world
Hello Linux
HELLO SHELL
12345
hello123
helloworld
hello_world
EOF

# 匹配包含hello的行
echo "=== 匹配hello ==="
grep "hello" test.txt

# 匹配以h開(kāi)頭的行
echo "=== 匹配以h開(kāi)頭 ==="
grep "^h" test.txt

# 匹配以d結(jié)尾的行
echo "=== 匹配以d結(jié)尾 ==="
grep "d$" test.txt

示例2:使用通配符

#!/bin/bash
# 創(chuàng)建測(cè)試文件
cat > data.txt << EOF
apple
appple
aple
banana
orange
app123
APPLE
EOF

# 匹配app后面跟任意字符
echo "=== app. ==="
grep "app." data.txt

# 匹配a和e之間任意兩個(gè)字符
echo "=== a..e ==="
grep "a..e" data.txt

2. 元字符總結(jié)

元字符作用示例說(shuō)明
^匹配行首^root匹配以root開(kāi)頭的行
$匹配行尾bash$匹配以bash結(jié)尾的行
.匹配任意單個(gè)字符a.c匹配abc、aac、a-c等
*匹配前一個(gè)字符0次或多次ab*c匹配ac、abc、abbc等
[]匹配括號(hào)內(nèi)的任意字符[abc]匹配a或b或c
[^]匹配不在括號(hào)內(nèi)的字符[^abc]匹配除abc外的字符
\轉(zhuǎn)義字符\.匹配點(diǎn)號(hào)本身
\{n\}匹配前一個(gè)字符n次a\{3\}匹配aaa
\{n,\}匹配前一個(gè)字符至少n次a\{2,\}匹配aa、aaa等
\{n,m\}匹配前一個(gè)字符n到m次a\{2,4\}匹配aa、aaa、aaaa

示例:元字符綜合應(yīng)用

#!/bin/bash
# 創(chuàng)建測(cè)試文件
cat > test.txt << EOF
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lisi:x:1000:1000:李四:/home/lisi:/bin/bash
zhangsan:x:1001:1001:張三:/home/zhangsan:/bin/bash
EOF

echo "=== 匹配以root開(kāi)頭 ==="
grep "^root" test.txt

echo "=== 匹配以bash結(jié)尾 ==="
grep "bash$" test.txt

echo "=== 匹配任意三個(gè)字符后跟:x: ==="
grep "^...:x:" test.txt

echo "=== 匹配用戶ID為1-3位的數(shù)字 ==="
grep "x:[0-9]\{1,3\}:" test.txt

echo "=== 匹配家目錄在/home下的用戶 ==="
grep "/home/[a-z]\+" test.txt

3. 擴(kuò)展正則表達(dá)式

擴(kuò)展正則表達(dá)式添加了更多元字符,使用時(shí)需要加 -E 選項(xiàng)(egrep命令)。

元字符作用示例說(shuō)明
+匹配前一個(gè)字符1次或多次a+匹配a、aa、aaa等
?匹配前一個(gè)字符0次或1次a?b匹配b、ab
|邏輯或a|b匹配a或b
()分組(ab)+匹配ab、abab等
{n,m}匹配n到m次(無(wú)需轉(zhuǎn)義)a{2,4}匹配aa、aaa、aaaa

示例:擴(kuò)展正則表達(dá)式應(yīng)用

#!/bin/bash
# 創(chuàng)建測(cè)試文件
cat > test.txt << EOF
apple
appple
aple
banana
banna
bananna
color
colour
colouur
123-4567
123-45678
123-456
EOF

echo "=== 使用+匹配app后面至少一個(gè)p ==="
grep -E "app+" test.txt

echo "=== 匹配color或colour ==="
grep -E "colou?r" test.txt

echo "=== 匹配banana或banna ==="
grep -E "bana{2,3}" test.txt

echo "=== 匹配電話號(hào)碼格式(3-4位數(shù)字)==="
grep -E "[0-9]{3}-[0-9]{4}" test.txt

echo "=== 匹配包含apple或banana ==="
grep -E "apple|banana" test.txt

三、文本處理器

1. sed工具

sed(Stream Editor) 是一種流編輯器,用于對(duì)文本進(jìn)行過(guò)濾和轉(zhuǎn)換。

sed基本語(yǔ)法

sed [選項(xiàng)] '命令' 文件名

常用選項(xiàng)

選項(xiàng)作用
-n僅顯示處理后的結(jié)果
-i直接修改文件內(nèi)容
-e執(zhí)行多個(gè)命令
-r使用擴(kuò)展正則表達(dá)式

sed常用命令

命令作用
p打印行
d刪除行
s替換字符串
a在行后添加
i在行前插入
c替換整行

示例1:sed打印操作

#!/bin/bash
# 創(chuàng)建測(cè)試文件
cat > sed.txt << EOF
第1行:Hello World
第2行:Hello Linux
第3行:Hello Shell
第4行:Hello Sed
第5行:Hello Awk
EOF

echo "=== 打印第2行 ==="
sed -n '2p' sed.txt

echo "=== 打印2-4行 ==="
sed -n '2,4p' sed.txt

echo "=== 打印包含Shell的行 ==="
sed -n '/Shell/p' sed.txt

echo "=== 打印奇數(shù)行 ==="
sed -n '1~2p' sed.txt

示例2:sed刪除操作

#!/bin/bash
echo "=== 原始文件 ==="
cat sed.txt

echo "=== 刪除第3行 ==="
sed '3d' sed.txt

echo "=== 刪除2-4行 ==="
sed '2,4d' sed.txt

echo "=== 刪除包含Linux的行 ==="
sed '/Linux/d' sed.txt

echo "=== 刪除空行 ==="
sed '/^$/d' sed.txt

echo "=== 刪除最后一行 ==="
sed '$d' sed.txt

示例3:sed替換操作

#!/bin/bash
echo "=== 替換第一個(gè)Hello為Hi ==="
sed 's/Hello/Hi/' sed.txt

echo "=== 替換所有Hello為Hi(全局替換)==="
sed 's/Hello/Hi/g' sed.txt

echo "=== 替換第2行的Hello為Hi ==="
sed '2s/Hello/Hi/' sed.txt

echo "=== 替換2-4行的Hello為Hi ==="
sed '2,4s/Hello/Hi/g' sed.txt

echo "=== 使用&引用匹配內(nèi)容 ==="
sed 's/Hello/(&)/g' sed.txt  # 將Hello替換為(Hello)

echo "=== 使用正則表達(dá)式 ==="
echo "123-4567-890" | sed 's/[0-9]\{3,\}/(&)/g'

示例4:sed插入和追加

#!/bin/bash
echo "=== 在第2行前插入 ==="
sed '2i\這是插入的行' sed.txt

echo "=== 在第3行后追加 ==="
sed '3a\這是追加的行' sed.txt

echo "=== 在匹配行前插入 ==="
sed '/Linux/i\----Linux行之前----' sed.txt

echo "=== 在匹配行后追加 ==="
sed '/Shell/a\----Shell行之后----' sed.txt

示例5:sed多命令組合

#!/bin/bash
echo "=== 使用-e執(zhí)行多個(gè)命令 ==="
sed -n -e '2p' -e '4p' sed.txt

echo "=== 使用分號(hào)執(zhí)行多個(gè)命令 ==="
sed '2d;4s/Hello/Hi/' sed.txt

echo "=== 先替換再打印 ==="
sed -n 's/Hello/Hi/gp' sed.txt

echo "=== 實(shí)際操作文件(使用-i) ==="
cp sed.txt sed.txt.bak
sed -i 's/Hello/Hi/g' sed.txt
echo "文件已修改:"
cat sed.txt
cp sed.txt.bak sed.txt  # 恢復(fù)原文件

2. awk工具

awk 是一種強(qiáng)大的文本處理語(yǔ)言,主要用于數(shù)據(jù)提取和報(bào)表生成。

awk基本語(yǔ)法

awk [選項(xiàng)] '模式 {動(dòng)作}' 文件名

常用選項(xiàng)

選項(xiàng)作用
-F指定字段分隔符
-v定義變量
-f從文件讀取awk腳本

awk內(nèi)置變量

變量作用
$0整行內(nèi)容
$n第n個(gè)字段
NF字段數(shù)量
NR當(dāng)前行號(hào)
FS字段分隔符
OFS輸出字段分隔符
RS記錄分隔符
ORS輸出記錄分隔符

示例1:awk基礎(chǔ)操作

#!/bin/bash
# 創(chuàng)建測(cè)試文件
cat > awk.txt << EOF
張三 80 85 90
李四 75 88 92
王五 90 92 95
趙六 65 70 75
EOF

echo "=== 打印整行 ==="
awk '{print $0}' awk.txt

echo "=== 打印第1列(姓名)==="
awk '{print $1}' awk.txt

echo "=== 打印第2列和第3列 ==="
awk '{print $2, $3}' awk.txt

echo "=== 打印行號(hào)和內(nèi)容 ==="
awk '{print NR, $0}' awk.txt

echo "=== 打印字段數(shù)量 ==="
awk '{print $0, "字段數(shù):" NF}' awk.txt

示例2:使用分隔符

#!/bin/bash
# 創(chuàng)建CSV格式文件
cat > data.csv << EOF
ID,姓名,部門,工資
001,張三,技術(shù)部,8000
002,李四,市場(chǎng)部,7500
003,王五,技術(shù)部,9000
004,趙六,財(cái)務(wù)部,7000
EOF

echo "=== 指定逗號(hào)分隔符 ==="
awk -F ',' '{print $2, $4}' data.csv

echo "=== 使用多個(gè)分隔符 ==="
echo "root:x:0:0:root:/root:/bin/bash" | awk -F '[:/]' '{print $1, $6, $8}'

echo "=== 設(shè)置輸出分隔符 ==="
awk -F ',' 'BEGIN{OFS=" | "} {print $1, $2, $4}' data.csv

示例3:awk模式匹配

#!/bin/bash
echo "=== 匹配包含'技術(shù)部'的行 ==="
awk -F ',' '/技術(shù)部/ {print $2, $4}' data.csv

echo "=== 匹配工資大于8000的行 ==="
awk -F ',' '$4 > 8000 {print $2, $4}' data.csv

echo "=== 匹配行號(hào)大于2的行 ==="
awk -F ',' 'NR > 2 {print NR, $0}' data.csv

echo "=== 匹配部門為技術(shù)部且工資>8500 ==="
awk -F ',' '$3 ~ /技術(shù)部/ && $4 > 8500 {print $2, $4}' data.csv

示例4:awk計(jì)算和統(tǒng)計(jì)

#!/bin/bash
echo "=== 計(jì)算每個(gè)學(xué)生的平均分 ==="
awk '{sum=$2+$3+$4; avg=sum/3; print $1, "總分:" sum, "平均分:" avg}' awk.txt

echo "=== 統(tǒng)計(jì)各科平均分 ==="
awk '{
    chinese+=$2
    math+=$3
    english+=$4
    count++
} END {
    print "語(yǔ)文平均分:" chinese/count
    print "數(shù)學(xué)平均分:" math/count
    print "英語(yǔ)平均分:" english/count
}' awk.txt

echo "=== 統(tǒng)計(jì)各部門工資總和 ==="
awk -F ',' 'NR>1 {
    dept[$3] += $4
    count[$3]++
} END {
    for (d in dept) {
        print d " 總工資:" dept[d] " 平均工資:" dept[d]/count[d]
    }
}' data.csv

示例5:awk條件判斷

#!/bin/bash
echo "=== 使用if語(yǔ)句 ==="
awk '{
    if ($2 >= 90) grade="優(yōu)秀"
    else if ($2 >= 80) grade="良好"
    else if ($2 >= 70) grade="中等"
    else if ($2 >= 60) grade="及格"
    else grade="不及格"
    print $1 " 語(yǔ)文成績(jī):" $2 " 等級(jí):" grade
}' awk.txt

echo "=== 使用三元運(yùn)算符 ==="
awk '{result=($2>=60) ? "及格" : "不及格"; print $1, result}' awk.txt

示例6:awk格式化輸出

#!/bin/bash
echo "=== 格式化輸出 ==="
awk 'BEGIN {
    printf "%-10s %-10s %-10s %-10s\n", "姓名", "語(yǔ)文", "數(shù)學(xué)", "英語(yǔ)"
    printf "%-10s %-10s %-10s %-10s\n", "------", "------", "------", "------"
}
{
    printf "%-10s %-10d %-10d %-10d\n", $1, $2, $3, $4
}' awk.txt

echo "=== 添加表頭和數(shù)據(jù)統(tǒng)計(jì) ==="
awk 'BEGIN {
    print "========== 成績(jī)統(tǒng)計(jì)表 =========="
    print "姓名\t語(yǔ)文\t數(shù)學(xué)\t英語(yǔ)\t總分"
    print "--------------------------------"
}
{
    total=$2+$3+$4
    printf "%s\t%d\t%d\t%d\t%d\n", $1, $2, $3, $4, total
    sum_total+=total
    count++
}
END {
    print "--------------------------------"
    printf "平均總分: %.2f\n", sum_total/count
    print "================================"
}' awk.txt

示例7:awk數(shù)組應(yīng)用

#!/bin/bash
# 統(tǒng)計(jì)單詞出現(xiàn)次數(shù)
cat > words.txt << EOF
apple banana apple orange
banana apple grape
orange banana apple
EOF

echo "=== 統(tǒng)計(jì)單詞出現(xiàn)次數(shù) ==="
awk '{
    for (i=1; i<=NF; i++) {
        count[$i]++
    }
}
END {
    for (word in count) {
        print word " 出現(xiàn) " count[word] " 次"
    }
}' words.txt

# 去重顯示
echo "=== 顯示唯一值 ==="
awk '!seen[$0]++' words.txt

示例8:awk實(shí)戰(zhàn)應(yīng)用(系統(tǒng)分析)

#!/bin/bash
# 分析系統(tǒng)日志
cat > access.log << EOF
192.168.1.100 - - [01/Mar/2024:10:15:23] "GET /index.html" 200 1234
192.168.1.101 - - [01/Mar/2024:10:15:25] "GET /about.html" 200 567
192.168.1.100 - - [01/Mar/2024:10:16:30] "POST /login" 401 234
192.168.1.102 - - [01/Mar/2024:10:17:45] "GET /index.html" 200 1234
192.168.1.100 - - [01/Mar/2024:10:18:12] "GET /dashboard" 200 3456
EOF

echo "=== 統(tǒng)計(jì)IP訪問(wèn)次數(shù) ==="
awk '{count[$1]++} END {for (ip in count) print ip "訪問(wèn)" count[ip] "次"}' access.log

echo "=== 統(tǒng)計(jì)HTTP狀態(tài)碼 ==="
awk '{code[$9]++} END {for (c in code) print "狀態(tài)碼" c ":" code[c] "次"}' access.log

echo "=== 統(tǒng)計(jì)404錯(cuò)誤的IP ==="
awk '$9 == 404 {print $1}' access.log | sort -u

echo "=== 計(jì)算總流量 ==="
awk '{total+=$10} END {print "總流量:" total "字節(jié)"}' access.log

四、綜合應(yīng)用案例

案例1:提取系統(tǒng)信息

#!/bin/bash
# 提取系統(tǒng)用戶信息

echo "=== 提取/etc/passwd中的用戶信息 ==="
awk -F ':' '
BEGIN {
    print "================================="
    printf "%-15s %-10s %-10s %-20s\n", "用戶名", "UID", "GID", "Shell"
    print "================================="
}
{
    if ($3 >= 1000 && $3 < 65534) {
        printf "%-15s %-10s %-10s %-20s\n", $1, $3, $4, $7
        count++
    }
}
END {
    print "================================="
    print "普通用戶數(shù)量: " count
}' /etc/passwd

案例2:日志分析腳本

#!/bin/bash
# 分析nginx訪問(wèn)日志

LOG_FILE="/var/log/nginx/access.log"  # 假設(shè)路徑

# 使用sed和awk組合分析
echo "=== 最近10分鐘內(nèi)的錯(cuò)誤請(qǐng)求 ==="
sed -n '/2024:..:..:..]/p' "$LOG_FILE" | awk '$9 >= 400'

echo "=== 最活躍的5個(gè)IP ==="
awk '{print $1}' "$LOG_FILE" | sort | uniq -c | sort -rn | head -5

echo "=== 請(qǐng)求最多的5個(gè)頁(yè)面 ==="
awk '{print $7}' "$LOG_FILE" | sort | uniq -c | sort -rn | head -5

案例3:數(shù)據(jù)清洗和轉(zhuǎn)換

#!/bin/bash
# 將CSV轉(zhuǎn)換為HTML表格

cat > employees.csv << EOF
ID,Name,Department,Salary
001,張三,技術(shù)部,8000
002,李四,市場(chǎng)部,7500
003,王五,技術(shù)部,9000
004,趙六,財(cái)務(wù)部,7000
EOF

awk -F ',' '
BEGIN {
    print "<table border='1'>"
    print "<tr><th>ID</th><th>姓名</th><th>部門</th><th>工資</th></tr>"
}
NR > 1 {
    printf "<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n", $1, $2, $3, $4
}
END {
    print "</table>"
}' employees.csv > employees.html

echo "已生成 employees.html"

案例4:監(jiān)控腳本

#!/bin/bash
# 監(jiān)控CPU使用率高的進(jìn)程

ps aux | awk '
NR>1 {
    if ($3 > 50) {
        printf "警告: 進(jìn)程 %s (PID: %s) CPU使用率: %s%%\n", $11, $2, $3
    }
}'

# 監(jiān)控磁盤使用率
df -h | awk '
$6 == "/" {
    gsub(/%/, "", $5)
    if ($5 > 80) {
        printf "警告: 根分區(qū)使用率已達(dá) %s%%\n", $5
    }
}'

五、正則表達(dá)式與文本處理器對(duì)比

工具主要用途優(yōu)點(diǎn)適用場(chǎng)景
grep文本搜索簡(jiǎn)單快速查找匹配行
sed文本編輯批量處理替換、刪除、插入
awk文本處理功能強(qiáng)大數(shù)據(jù)提取、統(tǒng)計(jì)、格式化

到此這篇關(guān)于Shell編程之正則表達(dá)式與文本處理器的文章就介紹到這了,更多相關(guān)Shell正則表達(dá)式與文本處理器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • linux shell常用循環(huán)與判斷語(yǔ)句(for,while,until,if)使用方法

    linux shell常用循環(huán)與判斷語(yǔ)句(for,while,until,if)使用方法

    這篇文章主要介紹了linux shell循環(huán),判斷介紹,以及實(shí)例使用方法,需要的朋友可以參考下
    2019-04-04
  • Linux shell 提取文件名和目錄名的方法

    Linux shell 提取文件名和目錄名的方法

    這篇文章主要介紹了Linux shell 提取文件名和目錄名的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Shell根據(jù)日期、月份、星期判斷年份的代碼

    Shell根據(jù)日期、月份、星期判斷年份的代碼

    這篇文章主要介紹了Shell根據(jù)日期、月份、星期判斷年份的代碼,需要的朋友可以參考下
    2016-12-12
  • shell腳本正則匹配文件中的Email并寫入到文件中代碼分享

    shell腳本正則匹配文件中的Email并寫入到文件中代碼分享

    有時(shí)我們會(huì)處理日志文件,或其他文本文件,并將里面含有的Email讀取出來(lái),可以利用shell處理文件的方法來(lái)讀取
    2014-04-04
  • Linux Netcat(nc)命令的使用方法詳解

    Linux Netcat(nc)命令的使用方法詳解

    在網(wǎng)絡(luò)編程和網(wǎng)絡(luò)安全領(lǐng)域,Netcat(簡(jiǎn)稱 nc)是一個(gè)功能強(qiáng)大的工具,它可以用來(lái)監(jiān)聽(tīng)網(wǎng)絡(luò)端口、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)等,Netcat 因其靈活性和強(qiáng)大的功能,被廣泛用于網(wǎng)絡(luò)調(diào)試和安全測(cè)試,本文介紹了Linux Netcat(nc)命令的使用方法,需要的朋友可以參考下
    2024-12-12
  • shell腳本字符串和數(shù)組的使用操作方法

    shell腳本字符串和數(shù)組的使用操作方法

    這篇文章主要介紹了shell腳本字符串和數(shù)組的使用操作方法,在文中給大家提到shell將字符串分隔成數(shù)組的方法,需要的朋友可以參考下
    2019-06-06
  • 開(kāi)發(fā)必備Linux常用的幾個(gè)命令分享

    開(kāi)發(fā)必備Linux常用的幾個(gè)命令分享

    Linux作為一個(gè)高度成熟和強(qiáng)大的操作系統(tǒng),擁有非常豐富的命令行工具,對(duì)于Java開(kāi)發(fā)者來(lái)說(shuō),掌握一些常用的Linux命令可以大大提高工作效率,尤其是在服務(wù)器端開(kāi)發(fā)時(shí),本文小編給大家分享了一些常用命令,需要的朋友可以參考下
    2023-10-10
  • 在 Bash 中循環(huán)遍歷文件內(nèi)容的不同方法

    在 Bash 中循環(huán)遍歷文件內(nèi)容的不同方法

    本文介紹了在Bash腳本中遍歷文件內(nèi)容的幾種方法,包括使用while循環(huán)和read命令逐行讀取文件,使用for循環(huán)和cat命令讀取整個(gè)文件內(nèi)容,使用IFS變量進(jìn)行單詞循環(huán),以及使用awk命令進(jìn)行更高級(jí)的文本處理,每種方法都有其適用的場(chǎng)景和優(yōu)缺點(diǎn),感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • clamscan-Linux查毒工具的命令詳解

    clamscan-Linux查毒工具的命令詳解

    這篇文章主要介紹了clamscan-Linux查毒工具命令詳解,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-05-05
  • Linux Shell echo命令輸出格式詳解

    Linux Shell echo命令輸出格式詳解

    本文介紹了echo命令的用法,包括基本輸出、換行控制、轉(zhuǎn)義字符處理、字體及背景顏色設(shè)置等選項(xiàng),并說(shuō)明了常用參數(shù)和特殊效果的實(shí)現(xiàn)方法
    2025-10-10

最新評(píng)論

洛川县| 鄂托克旗| 扶绥县| 滨海县| 莱阳市| 德安县| 虞城县| 安溪县| 射洪县| 吴忠市| 辛集市| 佳木斯市| 出国| 阿勒泰市| 平山县| 达孜县| 临朐县| 龙井市| 花莲市| 新和县| 宜宾县| 光山县| 文化| 泰和县| 阿拉善右旗| 敦化市| 洛扎县| 衡阳县| 东港市| 阳春市| 集安市| 宜都市| 罗平县| 通辽市| 鹤山市| 明星| 舒城县| 江北区| 固阳县| 安仁县| 中卫市|