整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          vim技巧:把外部shell命令執行結果寫入文件,將文件轉出html格式

          篇文章介紹一些 vim 使用技巧:

          • 把外部shell命令的執行結果寫入文件
          • 使用vim將文件轉出html格式

          把外部shell命令的執行結果寫入文件

          在 vim 中,可以使用 :r !cmd 命令執行 shell 中的 cmd 命令,并把該命令的打印結果寫入到當前光標的下一行。

          例如,:r !date 命令執行 shell 的 date 命令,打印當前的時間,把這個打印結果寫入到當前光標的下一行。

          也可以在 r 命令的前面加上數字指定要寫入到哪一行之后,而不是寫入到當前光標的下一行。

          例如,:2r !date 命令是把打印結果寫入到第二行的后面,也就是寫入到第三行,原先第三行會挪到第四行,后面的內容依此類推。

          注意:如果不加感嘆號 ‘!’,那么后面跟著的參數會被認為是文件名,如果存在該文件,會讀取該文件內容,寫入到當前光標的下一行。如果該文件不存在,則報錯提示找不到文件。例如, :r date 命令是讀取名為 date 的文件內容,寫入到當前光標的下一行。

          這里的 :r :read 命令的縮寫。

          在 vim 中,用 :help :r 命令查看 :r !cmd:r name 命令的幫助說明。部分關鍵說明如下:

          :r[ead] [++opt] [name]
          Insert the file [name] (default: current file) below the cursor.

          :{range}r[ead] [++opt] [name]
          Insert the file [name] (default: current file) below the specified line.

          :[range]r[ead] !{cmd}
          Execute {cmd} and insert its standard output below the cursor or the specified line.

          使用vim將文件轉出html格式

          在 vim 中,可以使用 :TOhtml 命令來將當前文件轉換出 html 格式文件。注意這個命令的大小寫,不能寫為 :tohtml 的形式。

          :TOhtml 命令基于整個文件內容轉成一個新的 html 文件,拆分新的 vim 水平窗口顯示轉換后的 html 文件內容。如有需要,可以自行修改文件內容做一些調整。最后,保存該 html 文件即可。

          注意:這個 html 文件需要在 vim 中保存后才會生成本地文件,:TOhtml 命令并沒有直接生成本地的 html 文件,也不會修改原有文件本身的內容,而是生成新的 html 文件。

          如果只是需要轉某幾行代碼(例如30行到42行),則執行 :30,42TOhtml 命令。

          如果當前 vim 配置成顯示行號,所轉換出來的 html 文件中也會帶有行號。不想帶有行號的話,可以在轉換之前,先執行 :set nonu 命令設置為不顯示行號。

          在計算機科學中,for循環(英語:for loop)是一種編程語言的迭代陳述,能夠讓程式碼反復的執行。

          它跟其他的循環,如while循環,最大的不同,是它擁有一個循環計數器,或是循環變數。這使得for循環能夠知道在迭代過程中的執行順序。今天主要用兩個實例來介紹下shell腳本的for循環。


          1、批量生成隨機字符文件名

          需求:使用for循環在/data目錄下批量創建10個html文件,其中每個文件需要包含10個字符,包含3個隨機小寫字母和3個隨機大寫字母加固定字符串hwb

          #!/bin/bash
          #############################################################
          # File Name: make_file.sh
          #############################################################
          ?
          [ -d /data ] || mkdir -p /data
          rpm -qa |grep pwgen &>/dev/null
          if [ $? -eq 1 ] 
           then 
           yum install -y expect &>/dev/null
          fi
          ?
          cd /data &&\
          for i in {1..10}
           do
           #File_Name=`uuidgen |tr "0-9-" "a-z"|cut -c 1-10`
           File_Name2=`mkpasswd -l 10 -c 3 -C 3`
           touch ${File_Name2}_hwb.html
          done
          

          腳本結果:


          2、批量改名特殊案例

          將前面結果文件名中的hwb字符串全部改成linux(最好用for循環實現),并且將擴展名html全部改成大寫。

          #!/bin/bash
          #############################################################
          # File Name: rename_file.sh
          #############################################################
          ?
          cd /data &&\
          File_name=`ls |sed -r 's#(.*)_hwb.html#\1#g'`
          ?
          for i in $File_name
           do
           if [ -f ${i}_hwb.html ] 
           then
           mv ${i}_hwb.html ${i}_linux.HTML
           else
           echo "文件修改完成."
           exit
           fi
          done
          

          結果:


          覺得有用的朋友多幫忙轉發哦!后面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~

          者:前端小智 來源:大遷世界

          .md文件是markdown的一種標記語言,和html比較起來,更簡單快捷,主要體現在:標記符的數量和書寫上。

          • 標記符的數量:html文檔需要用到數量繁多的標記符,再輔以css來控制樣式和排版,而markdown文檔只需要四個基本的標記符號就能完成同樣的事。
          • 標記符的書寫:HTML文檔內容需要同時標記開始和結束這是一個網頁,而markdown文檔則只要在開始位置標記即可# 這是一個md文檔。下面介紹如何實現將.md文件轉換成.html文件。

          方式一:使用i5ting_toc插件

          需要先安裝npm(安裝node.js后會自帶npm),然后才能安裝i5ting插件:

          npm install i5ting_toc -g

          執行命令行生成html文件,在輸入前要進入到對應根目錄下:

          i5ting_toc -f **.md

          需要注意的是:寫md文檔的特殊符號時記得添加空格。小技巧:如何快速在當前目錄打開cmd?選擇當前目錄,按住shift,然后鼠標右鍵在此處打開命令窗口(在此處打開powerShell窗口)。

          方式二:使用gitbook

          同樣先需要安裝node,然后運行:

          npm i gitbook gitbook-cli -g

          生成md文件,這個命令會生成相應的md的文件,然后在相應的文件里寫你的內容即可:

          gitbook init

          md轉html,生成一個_doc目錄,打開就可以看到你html文件了。

          gitbook build

          方式三:利用前端代碼

          實現原理是采用node.js搭建服務器,讀取md文件轉化為html片斷。瀏覽器發送ajax請求獲取片段后再渲染生成html網頁。

          node代碼:

          var express = require('express');

          var http = require('http');

          var fs = require('fs');

          var bodyParser = require('body-parser');

          var marked = require('marked'); // 將md轉化為html的js包

          var app = express();


          app.use(express.static('src')); //加載靜態文件

          var urlencodedParser = bodyParser.urlencoded({ extended: false });


          app.get('/getMdFile',urlencodedParser, function(req, res) {

          var data = fs.readFileSync('src/test.md', 'utf-8'); //讀取本地的md文件

          res.end(JSON.stringify({

          body : marked(data)

          }));

          } );


          //啟動端口監聽

          var server = app.listen(8088, function () {

          var host = server.address().address;

          var port = server.address().port;

          console.log("應用實例,訪問地址為 http://%s:%s", host, port)

          });

          前端html:

          <div id="content"> <h1 class="title">md-to-HTML web app</h1> <div id="article"> </div></div><script type="text/JavaScript" src="js/jquery-1.11.3.min.js"></script><script> var article = document.getElementById('article'); $.ajax({ url: "/getMdFile", success: function(result) { console.log('數據獲取成功'); article.innerHTML = JSON.parse(result).body; }, error: function (err) { console.log(err); article.innerHTML = '<p>獲取數據失敗</p>'; } });</script>


          主站蜘蛛池模板: 久久99精品波多结衣一区| 日韩美一区二区三区| 成人毛片一区二区| 一区二区三区在线视频播放| 毛片一区二区三区| 日韩人妻无码一区二区三区久久99| 色窝窝免费一区二区三区 | 男人免费视频一区二区在线观看 | 国产亚洲欧洲Aⅴ综合一区| 国产欧美色一区二区三区| 国产色综合一区二区三区| 中文字幕日韩一区二区三区不| 精品国产一区二区三区av片| 国产福利一区二区三区| 色狠狠AV一区二区三区| 日韩一区二区电影| 无码人妻品一区二区三区精99| 国产亚洲日韩一区二区三区| 国产精品福利区一区二区三区四区 | 精品人妻AV一区二区三区| 日本视频一区在线观看免费| 精品永久久福利一区二区| 老熟妇仑乱一区二区视頻| 国产99视频精品一区| 亚洲AV无码一区二区三区久久精品 | 日本视频一区二区三区| 日本一区二区在线不卡| 波多野结衣的AV一区二区三区| 中文字幕永久一区二区三区在线观看 | 国产精品小黄鸭一区二区三区| 亚洲片一区二区三区| 国产丝袜视频一区二区三区| 免费一区二区三区| 日韩免费一区二区三区在线| 精品少妇人妻AV一区二区| 日韩一区二区三区在线观看| 国产一区二区视频在线播放| 少妇无码一区二区二三区| 亚洲一区AV无码少妇电影| 精品国产天堂综合一区在线| 久久精品国产一区二区|