- 论坛徽章:
- 0
|
本帖最后由 ljmmail 于 2016-12-31 21:38 编辑
- #/bin/awk
- ## 这是一组 在 linux 的 bash 下使用的 awk 测试程序
- ## awk 中的特殊字符包含了 . ? + ^ $
- ## 处理 @@ 分隔符,解析正确
- echo "字段1@@字段2@@字段3@@字段4" | awk -F "@@" '{ printf("@@-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
- ## 处理 ## 分隔符,解析正确
- echo "字段1##字段2##字段3##字段4" | awk -F "##" '{ printf("##-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
- ## 处理 #! 分隔符,解析正确
- echo "字段1#!字段2#!字段3#!字段4" | awk -F "#!" '{ printf("#!-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
- ## 处理 #& 分隔符,解析正确
- echo "字段1#&字段2#&字段3#&字段4" | awk -F "#&" '{ printf("#&-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
- ## 处理 :: 分隔符,处理正确
- echo "字段1::字段2::字段3::字段4" | awk -F "::" '{ printf("::-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
- ## 处理 !! 分隔符,处理正确
- echo "字段1!!字段2!!字段3!!字段4" | awk -F "!!" '{ printf("!!-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
- ## 处理 $ 分隔符,处理正确
- echo "字段1$字段2$字段3$字段4" | awk -F "[ DISCUZ_CODE_0 ]quot; '{ printf("$-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
- ## 处理 ?? 分隔符,处理正确
- echo "字段1??字段2??字段3??字段4" | awk 'BEGIN {FS="\\?\\?"} { printf("??-->[%d][%s]++[%s]++[%s]++\n", NF, $1, $2, $3) ; }'
- ## 处理 .. 分隔符,处理正确
- echo "字段1..字段2..字段3..字段4" | awk 'BEGIN {FS="\\.\\." } { printf("..-->[%d][%s]++[%s]++[%s]++\n", NF, $1, $2, $3) ; }'
- ## 处理 ++ 分隔符,处理正确
- echo "字段1++字段2++字段3++字段4" | awk 'BEGIN {FS="\\++" } { printf("++-->[%d][%s]++[%s]++[%s]++\n", NF, $1, $2, $3) ; }'
- ## 处理 ~~ 分隔符,处理正确
- echo "字段1~~字段2~~字段3~~字段4" | awk 'BEGIN {FS="~~" } { printf("~~-->[%d][%s]++[%s]++[%s]++\n", NF, $1, $2, $3) ; }'
- ## 处理 -- 分隔符,处理正确
- echo "字段1--字段2--字段3--字段4" | awk 'BEGIN {FS="--" } { printf("---->[%d][%s]++[%s]++[%s]++\n", NF, $1, $2, $3) ; }'
- ## 处理 !!! 分隔符,处理正确
- echo "字段1!!!字段2!!!字段3!!!字段4" | awk -F "!!!" '{ printf("!!!-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
- ## 处理 ^ 分隔符,处理正确
- echo "字段1^字段2^字段3^字段4" | awk -F "^" '{ printf("^-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
- ## 处理 ^^ 分隔符,处理正确
- echo "字段1^^字段2^^字段3^^字段4" | awk 'BEGIN {FS="\\^\\^"} { printf("1111^^-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
- ## 处理 ^! 分隔符,处理正确
- echo "字段1^!字段2^!字段3^!字段4" | awk 'BEGIN {FS="\\^!"} { printf("2222^!-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
- ## 处理 !^ 分隔符,处理正确
- echo "字段1!^字段2!^字段3!^字段4" | awk 'BEGIN {FS="!\\^"} { printf("!^-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
- ## 处理 :^ 分隔符,处理正确
- echo "字段1:^字段2:^字段3:^字段4" | awk -F ":^" '{ printf(":^-->[%s]++[%s]++[%s]++\n", $1, $2, $3) ; }'
复制代码- ## 如果使用于 unix 的 ksh 环境,部分转意处理方法不同
- echo "abc1^^abc2^^abc3" | awk 'BEGIN{FS="\^^"}{printf("^^-->[%d] [%s][%s]\n", NF, $1,$2}'
- ## ksh 下只需要对第一个特殊字符进行转意,并且只需要写一个反斜线即可。
复制代码
|
|