Ching 9690121403 feat(init project): add all existing files
add all existing files

Signed-off-by: Ching <loooching@gmail.com>
2022-02-02 19:04:18 +08:00

130 lines
6.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="X-UA-Compatible" content="IE=edge"><title> bash function and awk · MarkDown</title><meta name="description" content="bash function and awk - Ching"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="short icon" href="/favicon.png"><link rel="stylesheet" href="/css/apollo.css"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600" type="text/css"><style><!-- hexo-inject:begin --><!-- hexo-inject:end -->mjx-container[jax="SVG"] {
direction: ltr;
}
mjx-container[jax="SVG"] > svg {
overflow: visible;
}
mjx-container[jax="SVG"] > svg a {
fill: blue;
stroke: blue;
}
mjx-container[jax="SVG"][display="true"] {
display: block;
text-align: center;
margin: 1em 0;
}
mjx-container[jax="SVG"][justify="left"] {
text-align: left;
}
mjx-container[jax="SVG"][justify="right"] {
text-align: right;
}
g[data-mml-node="merror"] > g {
fill: red;
stroke: red;
}
g[data-mml-node="merror"] > rect[data-background] {
fill: yellow;
stroke: none;
}
g[data-mml-node="mtable"] > line[data-line] {
stroke-width: 70px;
fill: none;
}
g[data-mml-node="mtable"] > rect[data-frame] {
stroke-width: 70px;
fill: none;
}
g[data-mml-node="mtable"] > .mjx-dashed {
stroke-dasharray: 140;
}
g[data-mml-node="mtable"] > .mjx-dotted {
stroke-linecap: round;
stroke-dasharray: 0,140;
}
g[data-mml-node="mtable"] > svg {
overflow: visible;
}
[jax="SVG"] mjx-tool {
display: inline-block;
position: relative;
width: 0;
height: 0;
}
[jax="SVG"] mjx-tool > mjx-tip {
position: absolute;
top: 0;
left: 0;
}
mjx-tool > mjx-tip {
display: inline-block;
padding: .2em;
border: 1px solid #888;
font-size: 70%;
background-color: #F8F8F8;
color: black;
box-shadow: 2px 2px 5px #AAAAAA;
}
g[data-mml-node="maction"][data-toggle] {
cursor: pointer;
}
mjx-status {
display: block;
position: fixed;
left: 1em;
bottom: 1em;
min-width: 25%;
padding: .2em .4em;
border: 1px solid #888;
font-size: 90%;
background-color: #F8F8F8;
color: black;
}
foreignObject[data-mjx-xml] {
font-family: initial;
line-height: normal;
overflow: visible;
}
.MathJax path {
stroke-width: 3;
}
mjx-container {
overflow: auto hidden;
}
mjx-container + br {
display: none;
}
</style><!-- hexo-inject:begin --><!-- hexo-inject:end --></head><body><header><a href="/" class="logo-link"><img src="/logo.png"></a><ul class="nav nav-list"><li class="nav-list-item"><a href="/" target="_self" class="nav-list-link">ALL</a></li><li class="nav-list-item"><a href="/categories/leetcode/" target="_self" class="nav-list-link">LEETCODE</a></li><li class="nav-list-item"><a href="https://bearmiebear.blogspot.com" target="_blank" class="nav-list-link">BEAR</a></li><li class="nav-list-item"><a href="/atom.xml" target="_self" class="nav-list-link">RSS</a></li></ul></header><section class="container"><div class="post"><article class="post-block"><h1 class="post-title">bash function and awk</h1><div class="post-meta"><div class="post-time">2018年5月31日</div></div><div class="post-content"><p>Ill come across many hg branch-switching or log searching tasks during my work. Using bash functions and awk greatly reduce the time I spend on dealing with these tasks. So lets see what these functions can do to help me improve my productivity.</p>
<!-- hexo-inject:begin --><!-- hexo-inject:end --><h4 id="bash_functions"><a href="#bash_functions" class="headerlink" title="bash functions"></a>bash functions</h4><p>Bash functions are scripts like <code>alias</code>, but can do much a lot than aliasThe first kind of usages of function is to run several scripts continuously, the same as <code>&amp;&amp;</code> I guess:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">function</span> run &#123;</span><br><span class="line"> <span class="built_in">source</span> ~/Develop/django/bin/activate</span><br><span class="line"> ./manage.py runserver</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<p>I activate django virtural enviroment first and then run django serve.</p>
<p>Functions, like in any other languages, can take parameters and returns a result. So I can use this ability to do a liitle more complex work:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">function</span> ba &#123; hgba | grep <span class="string">"<span class="variable">$1</span>"</span> &#125;</span><br><span class="line"><span class="comment"># hgba is an alias for hg branches</span></span><br></pre></td></tr></table></figure>
<p>I can just type <code>ba release</code> then get current release branch info.</p>
<hr>
<p>Append:</p>
<p>I made some updates to the <code>ba</code> function and make it auto copying the branch result to my clipboard:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"><span class="keyword">function</span> ba &#123; var=<span class="string">"<span class="variable">$(hgba | grep $1)</span>"</span> &amp;&amp; <span class="built_in">echo</span> <span class="variable">$var</span> | awk -F <span class="string">':'</span> END&#123;<span class="built_in">print</span>&#125; | awk -F <span class="string">':'</span> <span class="string">'&#123;print $NF&#125;'</span> | tr -d <span class="string">'\n'</span> | pbcopy &amp;&amp; <span class="built_in">echo</span> <span class="variable">$var</span> &#125;</span><br></pre></td></tr></table></figure>
<h4 id="awk"><a href="#awk" class="headerlink" title="awk"></a>awk</h4><p><code>awk</code> is a command I just know recently. I need to process a bunch of logs and analyze them. What I used to do is download the logs, grep things I want into a txt file and then process the txt file with python. </p>
</div></article></div></section><footer><div class="paginator"><a href="/2019/03/12/Postgresql-Partitioning/" class="prev">PRVE</a><a href="/2016/05/10/TastyPie-Note-1/" class="next">NEXT</a></div><div class="copyright"><p>© 2016 - 2020 <a href="http://blog.tunpok.com">Ching</a>, unless otherwise noted.</p></div></footer><script src="https://cdn.bootcss.com/mathjax/2.5.3/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><!-- hexo-inject:begin --><!-- hexo-inject:end --></body></html>