awk命令提取某行的最后一个数值 如何用awk命令提取文件中的某一列并统计该列中某个数字出现的...

\u5229\u7528awk\u547d\u4ee4\u63d0\u53d6\u5176\u4e2d\u4e00\u5217\u5305\u62ec\u7279\u5b9a\u5b57\u7b26\u7684\u6240\u6709\u884c\u600e\u4e48\u529e

awk\uff1a\u7528\u4e8e\u4e00\u884c\u4e2d\u5206\u6210\u6570\u4e2a\u201c\u5b57\u6bb5\u201d\u6765\u5904\u7406\u3002\u9002\u5408\u5904\u7406 \u5c0f\u578b\u6570\u636e\u3002
\u8fd0\u884c\u6a21\u5f0f\uff1aawk '\u6761\u4ef6\u7c7b\u578b1{\u52a8\u4f5c1} \u6761\u4ef6\u7c7b\u578b2{\u52a8\u4f5c2} ...' filename

# last | awk '{print $1 "\t" $3}' <== \u67e5\u770b\u767b\u5f55\u8005\u7684\u6570\u636e\uff0c\u53ea\u663e\u793a\u767b\u5f55\u540d\u548cip\u5730\u5740\uff0c\u5e76\u4ee5[tab]\u9694\u5f00

awk \u7684\u5185\u7f6e\u53d8\u91cf
\u53d8\u91cf\u540d\u79f0\u4ee3\u8868\u7684\u542b\u4e49

NF\u6bcf\u4e00\u884c\uff08$0\uff09\u62e5\u6709\u7684\u5b57\u6bb5\u603b\u6570

NR\u5f53\u524d awk \u6240\u5904\u7406\u7684\u662f \u201c\u7b2c\u51e0\u884c\u201d \u6570\u636e

FS\u5f53\u524d\u5206\u9694\u7b26\uff0c\u9ed8\u8ba4\u7a7a\u683c\u952e

awk \u7684\u903b\u8f91\u8fd0\u7b97\u7b26
\u8fd0\u7b97\u5355\u5143\u4ee3\u8868\u542b\u4e49
>\u5927\u4e8e
<\u5c0f\u4e8e
>=\u5927\u4e8e\u6216\u7b49\u4e8e
<=\u5c0f\u4e8e\u6216\u7b49\u4e8e
==\u7b49\u4e8e
!=\u4e0d\u7b49\u4e8e

\u8303\u4f8b\uff1a
cat /etc/passwd | awk '{FS=":"} $3 < 10 {print $1 "\t" $3}' <== \u6587\u4ef6/etc/passwd\u662f\u4ee5":"\u5206\u9694\u7684\uff0c\u67e5\u770b\u7b2c\u4e09\u680f\u5c0f\u4e8e10\u7684\u6570\u636e\uff0c\u5e76\u4e14\u53ea\u663e\u793a\u5e10\u53f7\u4e0e\u7b2c\u4e09\u680f

awk '{cnt[($3>100?100:$3)]++} END{for(key in cnt) print key ":" cnt[key]}' file

TS=`grep "energy" OUTCAR | tail -1 | awk '{printf "%12.8f \n", $8 }'`
echo $TS >>comment

这样就可以了。
反引号`内的命令被赋值给变量TS。echo $TS输出变量,用>>将输出重定向到comment文件中。
反引号内的命令一共是3个,通过2次管道将输出进行传递。
grep "energy" OUTCAR表示搜索OUTCAR文件中带有energy单词的行
| 表示将上一个命令的输出结果作为下一个命令的输入
tail -1表示取最后一行,这个根据你的OUTCAR文件的内容而定,如果只有一行有单词energy,就不需要这个命令,如果有多行包含energy,就根据需要取相应行。
awk '{printf "%12.8f \n", $8 }' 表示将行的第8列打印出来,awk命令默认列分隔符就是空格,所以你这一行所需要取的数值在第8列上。打印格式为精确到小数点后8位(数值总位数为12位),根据你需要的精度取舍。如果要取完整的数值,也可以直接将这部分改为awk '{printf, $8 }'。
就是这样了。

你可以直接用awk这样做:
awk 'BEGIN{FS="="}{print $2}' xxx.txt
因为我看你最后一个字段前有一个等号,所以用FS="="作为指定字段分隔符

假设文件是OUTCAR
TS=`grep "energy" OUTCAR |tail -1 |awk '{print $5}'`
echo $TS >> comment

  • awk鍛戒护鎻愬彇鏌愯鐨勬渶鍚庝竴涓鏁板
    绛旓細tail -1琛ㄧず鍙栨渶鍚庝竴琛锛岃繖涓牴鎹綘鐨凮UTCAR鏂囦欢鐨勫唴瀹硅屽畾锛屽鏋滃彧鏈変竴琛屾湁鍗曡瘝energy锛屽氨涓嶉渶瑕佽繖涓懡浠わ紝濡傛灉鏈夊琛屽寘鍚玡nergy锛屽氨鏍规嵁闇瑕佸彇鐩稿簲琛屻俛wk '{printf "%12.8f \n", $8 }' 琛ㄧず灏嗚鐨勭8鍒楁墦鍗板嚭鏉ワ紝awk鍛戒护榛樿鍒楀垎闅旂灏辨槸绌烘牸锛屾墍浠ヤ綘杩欎竴琛屾墍闇瑕佸彇鐨勬暟鍊煎湪绗8鍒椾笂銆傛墦鍗...
  • shell awk鎴彇鏌愪竴瀛楃涓插苟绉婚櫎褰撲腑鏈鍚庝竴浣嶃傛柟娉曡秺澶氳秺濂,璋㈣阿~_鐧惧害...
    绛旓細awk -F" " '{print $4}' xxx | awk -F. '{print $1}'awk -F" " '{print $4}' xxx | sed 's/\.//g'
  • awk鎵撳嵃鏌愬垪涔嬪悗鐨勬墍鏈夊垪
    绛旓細杩欓噷浠s -aux鐨勭粨鏋滀负渚嬶紝鎵撳嵃杩愯绋嬪簭鐨鍛戒护鍏ㄨ矾寰勩傚懡浠ゅ叏璺緞鍦╬s -aux缁撴灉鐨勭10琛屼互鍚庯紝浠庣11琛屽紑濮嬨 濡備笅鏄痯s -aux 鐨勮緭鍑虹粨鏋 鎴戠殑鐩殑鏄埅鍙栧悗闈㈢殑鍛戒护鍏ㄨ矾寰 涔熷氨鏄渶瑕佹墦鍗扮11鍒楀埌鏈鍚涓琛屻俻s -aux |sort -rn -k4 |head -10 : 杈撳嚭鍐呭瓨鍗犵敤鎺掑悕鍓嶅崄鐨勮繘绋 for(i=...
  • awk鎬庝箞鎴彇鍊掓暟绗簩琛岀殑鏁版嵁
    绛旓細awk '{res = cur; cur = $NF} END{print res}' 杩介棶 鍙栧埌鏁版嵁浜,鎴戣繕鎯宠鍊掓暟绗簩琛屽掓暟绗簩鍒楃殑鎬庝箞鎼炲晩?鎴戣瘯浜嗕笅:awk '{res = cur; cur = $(NF-1)} END{print res}'鎶ラ敊浜嗐$NF涓嶆槸鎸鏈鍚庝竴鍒楀悧?鍑1灏辨槸鍊掓暟绗簩鍒楀惂?浣犱笂闈㈤偅鍙ョ殑琛屾暟鏄湪鍝畾涔夌殑鍟?鎴戞渶鍚庝竴鍒楃殑鏁版嵁姣忎竴琛岄兘涓...
  • 鍒╃敤shell鑴氭湰濡備綍鎻愬彇涓涓鏂囦欢涓鏌涓鐗瑰畾琛屽拰涓嬮潰鑻ュ共琛岀殑鍐呭
    绛旓細1銆佸湪linux鐩綍/root涓嬪缓绔涓涓txt鏂囦欢锛屽唴瀹瑰涓嬶紝浣跨敤|绔栫嚎鍒嗗壊锛屼綔涓烘垜浠殑瀹為獙鏁版嵁鏍锋湰銆2銆乻ed鐢ㄦ硶銆乻ed-n'xp'data.txt锛涙樉绀烘枃浠禭琛屾暟鎹,鑾峰彇绗18琛屾暟鎹紝鍗充负sed-n'18p'data.txt銆3銆乻ed-n'寮濮嬭锛岀粨鏉熻p'data.txt锛涙樉绀烘枃浠禭琛屽埌Y琛岀殑鍐呭锛鍛戒护锛歴ed-n'10,18p'data.txt銆4銆...
  • 濡備綍浣跨敤awk灏鏌愪竴涓鏂囦欢鐨鏌愪竴琛鏇挎崲鍒板彟涓涓枃浠剁殑鏌愪竴琛
    绛旓細export s=`awk 'NR==2' a.txt`awk 'NR==3{$0=ENVIRON["s"]};1' b.txt > c.txts=`awk 'NR==2' a.txt` 琛ㄧず灏嗙2琛岃祴鍊肩粰s, $0=ENVIRON["s"] 琛ㄧず鏇挎崲锛岀粨鏋滃瓨鍦╟.txt 鐢 sed 瑙e喅鏇存柟渚 sed -i "3s/.*/`sed -ne 2p a.txt`/" b.txt鐩存帴淇敼 b.txt ...
  • linux awk鎬庝箞鍗曠嫭鍙栧嚭鏌愪竴琛屾煇涓娈靛瓧绗
    绛旓細绀轰緥锛氭墦鍗癷nstall.log鏂囦欢涓浜旇锛岀浜屾锛堟寜鐓х┖鏍煎垎娈碉級鐨勬枃瀛楋細
  • linux 涓彲浠ョ敤cut鎻愬彇鏌愪竴琛岀殑鏌愪竴鍒楁暟鎹悧? 濡傛灉鍙互鎬庝箞鍋?_鐧惧害...
    绛旓細鍙互銆俢ut -d" " -f2 filename 鎰忔濆氨鏄垜浠ョ┖鏍间负鍒楃殑鍒嗛殧绗︼紝鎻愬彇绗簩鍒 鎴栬呬娇鐢awk awk '{print $2}' filename awk榛樿浠ョ┖鏍间负鍒嗛殧绗︼紝鎵撳嵃绗簩鍒
  • shell awk鍛戒护璇﹁В
    绛旓細ARGV : 鍖呭惈鍛戒护琛鍙傛暟鐨勬暟缁勩侰ONVFMT : 鏁板瓧杞崲鏍煎紡锛堥粯璁ゅ间负%.6g锛夈侲NVIRON : 鐜鍙橀噺鍏宠仈鏁扮粍銆侲RRNO : 鏈鍚庝竴涓绯荤粺閿欒鐨勬弿杩般侳IELDWIDTHS : 瀛楁瀹藉害鍒楄〃锛堢敤绌烘牸閿垎闅旓級銆侳ILENAME : 褰撳墠杈撳叆鏂囦欢鐨勫悕銆侼R : 琛ㄧず璁板綍鏁帮紝鍦ㄦ墽琛岃繃绋嬩腑瀵瑰簲浜庡綋鍓嶇殑琛屽彿 FNR : 鍚孨R :锛屼絾鐩稿浜庡綋鍓...
  • linux鏌ョ湅鏂囦欢琛屾暟linux鏌ユ壘琛
    绛旓細awk鏄幓鍙栫涓夎涓瘡鍒楃殑鏈澶у硷紝鏈鍚缁撴灉鍚堝苟灏卞彲浠ユ弧瓒抽渶姹傚暒銆俵inux鎬庝箞鏌ョ湅鏈夋晥鐨勮锛熶竴锛屾柟娉1nlfile-name|sed-n5p鏌ョ湅绗簲琛屼簩锛屾柟娉2head-nfile_name|tail-1鏌ョ湅绗琻琛屼笁锛屾柟娉3.杈撳嚭涓涓鏂囦欢鐨勭4琛宻ed-n4pufileawkNR==4ufilehead-4file|tail-1鍥涳紝鏂规硶42.杈撳嚭鏂囦欢鐨勭3鍒(榛樿鍒嗛殧...
  • 扩展阅读:docker exec ... awk print ... docker create ... awk-f命令 ... linux中awk命令详解 ... awk v ... 文言文翻译转换器 ... awk用法 ... awk命令输出最后一行 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网