<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    kxbin
    成功留給有準備的人
    posts - 10,  comments - 35,  trackbacks - 0
    1.awk給輸出的字段加單引號。(下面輸出的第三個字段都加上了引號)
    awk -v aa="'" '{print $1,$2, aa $3 aa}' filename
    例子:
    [root@WANGJIAN ~]# awk -v aa="'" '{print $1,aa $2 aa}' file
    a '13'
    b '1'

    2.刪除兩列之間多個不等空格使成為兩列中間只有一個空格的規范格式
    方法1:cat filename |tr -s ' ' 
    方法2: cat filename |sed 's/ \{2,\}/ /g'

    例子:
    [root@WANGJIAN ~]# cat a
    a 13
    b 1
    c 23
    d 234
    [root@WANGJIAN ~]# cat a | tr -s ' ' #注意引號里有空格
    a 13
    b 1
    c 23
    d 234
    [root@WANGJIAN ~]# cat a | sed 's/ \{2,\}/ /g' #注意空格
    a 13
    b 1
    c 23
    d 234

    3.將一列的轉換成一行(本例是指第一列,也同理換成其他列)
    awk '{printf "%s",$1}' filename
    例子:
    [root@WANGJIAN ~]# cat file
    a 13
    b 1
    c 23
    d 234
    [root@WANGJIAN ~]# awk '{printf "%s", $1}' file
    abcd

    補充:合并上下行并以空格相分隔
    sed '$!N;s/\n/ /' #合并上下兩行
    cat file
    1234567890
    0987654321
    執行命令后
    1234567890 0987654321

    4.用awk給定的分隔符格式化輸出
    [root@WANGJIAN ~]# echo a b c |awk '{print $1":"$2":"$3}'
    a:b:c
    [root@WANGJIAN ~]# echo a b c |awk '{OFS=":";print $1,$2,$3}'
    a:b:c

    5.用某一文件的一個域替換另一個文件中的的特定域(條件是兩個文件第一列相同)
    該例是用linux shadow文件中的密文部分替換passwd中的"x",生一個新passwd文件,如下所示
    文件passwd: 
    s2002408030068:x:527:527::/home/dz02/s2002408030068:/bin/pw 
    文件shadow: 
    s2002408030068:$1$d8NwFclG$v4ZTacfR2nsbC8BnVd3dn1:12676:0:99999:7::: 

    awk 'BEGIN{OFS=FS=":"} NR==FNR{a[$1]=$2}NR>FNR{$2=a[$1];print}' shadow passwd
    NR==FNR,第一個文件shadow,以$1為下標,將$2的值賦給數組a
    NR>FNR,第二個文件passwd,將文件shadow$2的值賦值給文件passwd

    6.編寫一個sed命令,給一個文件的行間距變為兩倍行距
    sed '$!G;$!G' filename

    7.常見sed等價命令
    basename sed 's/\(.*\)\/\([^/]*\)/\2/' or sed 's,.*/,,'
    cat sed '' or sed -n '1,$p' or sed '1,$!d'
    cat -s sed '/./,/^$/!d'
    cat -n sed '=' | sed 'N;s/\n/\t/;s/^/ &/' or sed '=' | sed '$!N;s/\n/ /'
    cat -E sed 's/$/\$/'
    cat -t sed 's/\t/^I/g'
    cut -c n sed 's/\(.\)\{n\}.*/\1/' or sed 's/^.\{(n-1)\}//g;s/\(.\)\(.*\)/\1/g'
    cut -c x-y sed 's/\(^.\{y\}\)\(.*\)/\1/g;s/^.\{(x-1)\}//'
    cut -d| -f6 sed 's/\(\([^|]*\)\|\)\{6\}.*/\2/'
    cp file1 file2 sed 'w file2' file1
    expand -t 1 sed 's/\t/ /g'
    dirname sed 's/\(.*\)\/\([^/]*\)/\1/' or sed 's,[^/]*$,,'
    grep patten sed -n '/patten/p' or sed '/patten/!d'
    grep -v patten sed -n '/patten/!p' or sed '/pateen/d'
    grep -n patten sed -n '/patten/{=;p}'| sed 'N;s/\n/:/'
    head sed -n '1,10p'
    head -1 sed -n '1p' or sed 'q'
    head -Number sed '1,Number!d' or sed 'Numberq'
    paste -s file1 file2 sed ':a;N;s/\n/\t/;ba;' file1 file2 | sed 's/\t\t/\n/'
    paste -sdstr sed ':a;N;s/\n/str/;ba'
    rev sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'
    tac sed -n '1! G;$p;h' or sed -n 'G;$p;h'
    tail -1 sed -n '$p' or sed '$!d'
    tail -Number sed ':t;$q;N;(Number+1),$D;bt'
    tail -f sed -u '/./!d'
    tr "\n" " " sed ':a;N;s/\n/ /;ba'
    tr "A-Z" "a-z" sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'
    tr "a-z" "A-Z" sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'

    8.將字符串進行割接顯示
    如將 hellohellohello 顯示為
    hello
    hello
    hello

    方法:
    echo "hellohellohello" |fold -w5
    echo hellohellohello|sed 's/\(.....\)/\1\n/g'

    echo hellohellohello|sed 's/\(.....\)/\1#/g'|tr '#' '\n'

    9.從右取字符串中的字符操作
    [root@localhost ~]# string="abcdefg"
    [root@localhost ~]# echo ${string:(-3)} #取efg
    efg
    [root@localhost ~]# echo ${string:(-1)}
    g
    [root@localhost ~]# echo ${string:(2)} #跳過前2個字符
    cdefg

    10.漢字按拼音排序
    [root@localhost ~]# cat str 
    的見上我人歐怕我下風那把長下在懊上的風個還見看 #未排序前
    [root@localhost ~]# cat str |sed 's/./&\n/g'|LC_ALL=C sort|tr '\n' ' '|tr -d ' ';echo
    #懊把長的的風風個還見見看那歐怕排前人上上未我我下下序在

    11.tr命令小結
    tr命令:
    tr "[a-z]" "[A-Z]" 轉換大小寫
    tr "@" "\n" 替換
    tr -d "a" 刪除
    tr -s "a" 相鄰重復的a 只保留一個
    [root@localhost ~]# echo abcde |tr -d "a"
    bcde
    [root@localhost ~]# echo abcde |tr "a" "#"
    #bcde
    [root@localhost ~]# echo aabcded |tr -s "a"
    abcded

    12.指定每一行的第幾次出現進行替換
    sed 's/old/new/n' filename
    [root@localhost ~]# cat sh
    abcddds
    adsfsfdio
    dsabcdljlsabc
    [root@localhost ~]# cat sh|sed 's/abc/ABC/1'
    ABCddds
    adsfsfdio
    dsABCdljlsabc
    [root@localhost ~]# cat sh|sed 's/abc/ABC/2'
    abcddds
    adsfsfdio
    dsabcdljlsABC
    [root@localhost ~]# 

    13. 為文件加行號輸出
    sed = filename|sed 'N;s/\n/:/'
    cat -n filename
    nl filename

    [root@localhost ~]# sed = /etc/passwd|sed 'N;s/\n/:/' #可以指定分割符
    1:root:x:0:0:root:/root:/bin/bash
    2:bin:x:1:1:bin:/bin:/sbin/nologin
    3:daemon:x:2:2:daemon:/sbin:/sbin/nologin

    [root@localhost ~]# sed = /etc/passwd|sed 'N;s/\n/ /'
    1 root:x:0:0:root:/root:/bin/bash
    2 bin:x:1:1:bin:/bin:/sbin/nologin

    14.打印文檔奇數行(隔行輸出)
    sed 'n;d'
    sed 'x;$!N;x'
    sed -n 'p;n'
    1
    3
    5
    7

    15.打印偶數行(隔行輸出)
    sed -n 'n;p'
    sed '1d;n;d;'
    2
    4
    6
    8

    16.用于計算的兩個命令 bc expr
    expr 2 + 3 兩個數和運算符之間要有空格
    [root@localhost ~]# date +%d-2|bc 前兩天的日
    18
    計算的時候要有小數部分:
    echo "2/8" |bc -l
    echo $a*$b|bc
    echo "scale=2; 2/8" | bc -l
    awk 'BEGIN{printf "%.2f",2/8}' 可以指定保留小數點幾位 
    posted on 2012-04-24 23:26 kxbin 閱讀(602) 評論(0)  編輯  收藏 所屬分類: 轉發Linux
    你恨一個人是因為你愛他;你喜歡一個人,是因為他身上有你沒有的;你討厭一個人是因為他身上有你有的東西;你經常在別人面前批評某人,其實潛意識中是想接近他。

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(5)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    J2EE

    java技術網站

    Linux

    平時常去的網站

    數據庫

    電影網站

    網站設計

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久青草国产免费观看| 亚洲国产成人久久综合一| 免费人成在线观看播放a| 永久免费毛片在线播放| 久久精品国产亚洲av麻豆小说| 亚洲电影在线免费观看| 亚洲伊人色一综合网| 美女视频黄的全免费视频网站| 亚洲乱码卡一卡二卡三| 亚洲av午夜精品一区二区三区| 国产精品亚洲专区无码不卡| 免费一级国产生活片| 免费激情网站国产高清第一页 | 亚洲美女又黄又爽在线观看| 99无码人妻一区二区三区免费 | 精品免费久久久久国产一区 | 国产亚洲精品拍拍拍拍拍| 99精品全国免费观看视频..| 亚洲AV午夜福利精品一区二区 | 亚洲性猛交XXXX| 日韩一级视频免费观看| 少妇人妻偷人精品免费视频| 特黄特色大片免费| 国产成人A亚洲精V品无码| 无码精品人妻一区二区三区免费看 | 久久高潮一级毛片免费| 亚洲AV成人一区二区三区在线看| 亚洲色婷婷一区二区三区| 国产美女无遮挡免费网站| 日本阿v免费费视频完整版| 久久er国产精品免费观看2| 亚洲综合校园春色| 久久久久无码精品亚洲日韩| 亚洲精品国产精品乱码不卡| 成人无遮挡裸免费视频在线观看| 久久精品免费视频观看| 亚美影视免费在线观看| 亚洲国产91在线| 亚洲码一区二区三区| 亚洲成A人片77777国产| 最好免费观看韩国+日本 |