<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Krix Apolinário &#187; Shell</title>
	<atom:link href="http://blog.krix.com.br/tag/shell/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.krix.com.br</link>
	<description></description>
	<lastBuildDate>Fri, 23 Jul 2010 18:20:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>PDF do Canivete Suíço do Shell agora é gratuito.</title>
		<link>http://blog.krix.com.br/2010/05/10/pdf-do-canivete-suico-do-shell-agora-e-gratuito/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=pdf-do-canivete-suico-do-shell-agora-e-gratuito</link>
		<comments>http://blog.krix.com.br/2010/05/10/pdf-do-canivete-suico-do-shell-agora-e-gratuito/#comments</comments>
		<pubDate>Mon, 10 May 2010 13:40:32 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Canivete Suíço]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=2910</guid>
		<description><![CDATA[Olá pessoal, O Aurélio Jarbas (Verde) liberou o PDF do Canivete Suíço do Shell para quem quiser baixar, gratuitamente. O Canivete Suíço do Shell é uma referência rápida do shell do Unix/Linux/Mac, com várias tabelas que resumem comandos, operadores, opções, conceitos, exemplos, dicas e listagens. Nada de texto, só tabelas. Bom para ter sempre à [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal,</p>
<p>O Aurélio Jarbas (Verde) liberou o PDF do <a href="http://aurelio.net/canivete">Canivete Suíço do Shell</a> para quem quiser baixar, gratuitamente.</p>
<blockquote><p>O Canivete Suíço do Shell é uma referência rápida do shell do Unix/Linux/Mac, com várias tabelas que resumem comandos, operadores, opções, conceitos, exemplos, dicas e listagens. Nada de texto, só tabelas. Bom para ter sempre à mão para tirar dúvidas.</p>
<p>Este documento existe em meu site desde 2003 e sempre foi muito acessado. Em dezembro de 2006 fiz uma versão especial para impressão (PDF de quatro páginas) e comecei a vendê-la por 5 reais. Satisfeito com o resultado, encerrei as vendas em dezembro de 2009 e hoje estou liberando o PDF gratuitamente para quem quiser baixar. Aproveite!</p>
<h5 style="text-align: right;">Fonte: <a title="br-linux.org" href="http://aurelio.wordpress.com/2010/05/07/canivete-pdf-agora-gratuito/" target="_blank">Aurelio</a></h5>
</blockquote>
<p style="text-align: center;"><a href="http://aurelio.net/shell/canivete-shell.pdf" target="_blank"><img class="alignnone" src="http://blog.krix.com.br/wp-content/uploads/2010/05/canivete-liberado.png" alt="" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2010/05/10/pdf-do-canivete-suico-do-shell-agora-e-gratuito/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DreamPie &#8211; Novo Shell Para Python</title>
		<link>http://blog.krix.com.br/2010/02/23/dreampie-novo-shell-para-python/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=dreampie-novo-shell-para-python</link>
		<comments>http://blog.krix.com.br/2010/02/23/dreampie-novo-shell-para-python/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 13:58:32 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[DreamPie]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=2742</guid>
		<description><![CDATA[O DreamPie vem com um novo conceito para um shell interativo, onde a janela é dividida em caixa de histórico, que permite visualizar comandos anteriores e sua saída, e a caixa de código, onde você escreve seu código. Você também pode copiar o código de qualquer lugar, editá-lo e executá-lo imediatamente. Abaixo listei algumas das [...]]]></description>
			<content:encoded><![CDATA[<p>O <a title="DreamPie" href="http://dreampie.sourceforge.net/index.html" target="_blank">DreamPie</a> vem com um novo conceito para um shell interativo, onde a janela é dividida em caixa de histórico, que permite visualizar comandos anteriores e sua saída, e a caixa de código, onde você escreve seu código. Você também pode copiar o código de qualquer lugar, editá-lo e executá-lo imediatamente.</p>
<p>Abaixo listei algumas das características dele:</p>
<ul>
<li>O código fica formatado com um recuo de quatro espaços.</li>
</ul>
<ul>
<li>Preenchimento automático de atributos e de arquivo.</li>
</ul>
<ul>
<li>Permite-lhe guardar o histórico da sessão como um arquivo HTML. O arquivo pode ser carregado no <em>DreamPie</em> e rapidamente refazer os comandos anteriores.</li>
</ul>
<ul>
<li>Suporta interativo com <a href="http://matplotlib.sourceforge.net/" target="_blank">matplotlib</a>.</li>
</ul>
<ul>
<li>Suporta Python 2.5, Python 2.6, Jython 2,5, 2,6 IronPython e Python 3.1. Funciona em Windows, Mac e Linux.</li>
</ul>
<ul>
<li>Extremamente rápido e responsivo.</li>
</ul>
<ul>
<li>Licenciado sob a GPL versão 3.</li>
</ul>
<p>Para conhecer melhor acesse o <a title="DreamPie" href="http://dreampie.sourceforge.net/index.html" target="_blank">site</a>.</p>
<p>PS: Ainda não parei para futucar, só instalei e dei uma leve &#8220;olhada&#8221;, mas o pouco que eu mexi gostei <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2010/02/23/dreampie-novo-shell-para-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auto Completar no Interpretador Python</title>
		<link>http://blog.krix.com.br/2009/09/15/auto-completar-no-interpretador-python/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=auto-completar-no-interpretador-python</link>
		<comments>http://blog.krix.com.br/2009/09/15/auto-completar-no-interpretador-python/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 09:32:43 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=2230</guid>
		<description><![CDATA[Faz um tempinho que não escrevo nenhum post mas juro que não é má vontade, é que estou resolvendo umas bronquinhas mas prometo que vou procurar ficar mais presente. Essa semana estava procurando sobre um determinado assunto e acabei encontrando uma dica passada pelo Petry em seu blog (que por sinal eu não conhecia), onde [...]]]></description>
			<content:encoded><![CDATA[<p>Faz um tempinho que não escrevo nenhum post mas juro que não é má vontade, é que estou resolvendo umas bronquinhas mas prometo que vou procurar ficar mais presente. <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Essa semana estava procurando sobre um determinado assunto e acabei encontrando uma dica passada pelo <a title="Blog do Petry" href="http://blog.mdpetry.net/" target="_blank">Petry</a> em seu blog (que por sinal eu não conhecia), onde fala sobre o uso do TAB para auto completar as funções no interpretador Python, algo que é muito útil.</p>
<p>Para que fique por padrão em seu interpretador Python crie o arquivo $HOME/.pythonrc e insira o seguinte código:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">readline</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">rlcompleter</span>
<span style="color: #dc143c;">readline</span>.<span style="color: black;">parse_and_bind</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'tab: complete'</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Você também pode rodar esse código diretamento no interpretador Python mas fazendo isso, sempre que acessar terá que refazer e criando o arquivo não será necerrário. Contudo não podemos esquecer de declarar a variável indicando o local do <em>.pythonrc</em> no <em>.bashrc</em>, então adicione as linhas abaixo no $HOME/.bashrc :</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">PYTHONSTARTUP=<span style="color: #483d8b;">&quot;$HOME/.pythonrc&quot;</span>
export PYTHONSTARTUP</pre></div></div>

<p>Após isso basta restartar o <em>shell</em> e rodar o interpretador Python:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: black;">&#91;</span>krix@rogue<span style="color: black;">&#93;</span>$ source /home/krix/.<span style="color: black;">bashrc</span>
<span style="color: black;">&#91;</span>krix@rogue<span style="color: black;">&#93;</span>$ python
Python 2.6.2 <span style="color: black;">&#40;</span>release26-maint, Apr <span style="color: #ff4500;">19</span> <span style="color: #ff4500;">2009</span>, 01:<span style="color: #ff4500;">56</span>:<span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span>
<span style="color: black;">&#91;</span>GCC 4.3.3<span style="color: black;">&#93;</span> on linux2
Type <span style="color: #483d8b;">&quot;help&quot;</span>, <span style="color: #483d8b;">&quot;copyright&quot;</span>, <span style="color: #483d8b;">&quot;credits&quot;</span> <span style="color: #ff7700;font-weight:bold;">or</span> <span style="color: #483d8b;">&quot;license&quot;</span> <span style="color: #ff7700;font-weight:bold;">for</span> more information.
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #008000;">str</span>. <span style="color: black;">&#91;</span>TAB+TAB<span style="color: black;">&#93;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__add__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.__subclasses__<span style="color: black;">&#40;</span>               <span style="color: #008000;">str</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__base__<span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.__instancecheck__<span style="color: black;">&#40;</span>            <span style="color: #008000;">str</span>.__subclasshook__<span style="color: black;">&#40;</span>             <span style="color: #008000;">str</span>.<span style="color: black;">ljust</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__bases__                     <span style="color: #008000;">str</span>.__itemsize__                  <span style="color: #008000;">str</span>.__weakrefoffset__             <span style="color: #008000;">str</span>.<span style="color: black;">lower</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__basicsize__                 <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__le__</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>._formatter_field_name_split<span style="color: black;">&#40;</span>  <span style="color: #008000;">str</span>.<span style="color: black;">lstrip</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__call__</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__len__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>._formatter_parser<span style="color: black;">&#40;</span>            <span style="color: #008000;">str</span>.<span style="color: black;">mro</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__class__<span style="color: black;">&#40;</span>                    <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__lt__</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: black;">capitalize</span><span style="color: black;">&#40;</span>                   <span style="color: #008000;">str</span>.<span style="color: black;">partition</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__cmp__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__mod__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">center</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__contains__</span><span style="color: black;">&#40;</span>                 <span style="color: #008000;">str</span>.__module__                    <span style="color: #008000;">str</span>.<span style="color: black;">count</span><span style="color: black;">&#40;</span>                        <span style="color: #008000;">str</span>.<span style="color: black;">rfind</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__delattr__</span><span style="color: black;">&#40;</span>                  <span style="color: #008000;">str</span>.__mro__                       <span style="color: #008000;">str</span>.<span style="color: black;">decode</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: black;">rindex</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__dict__</span>                      <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__mul__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">encode</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: black;">rjust</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__dictoffset__                <span style="color: #008000;">str</span>.__name__                      <span style="color: #008000;">str</span>.<span style="color: black;">endswith</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.<span style="color: black;">rpartition</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__doc__                       <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__ne__</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: black;">expandtabs</span><span style="color: black;">&#40;</span>                   <span style="color: #008000;">str</span>.<span style="color: black;">rsplit</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__eq__</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__new__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">find</span><span style="color: black;">&#40;</span>                         <span style="color: #008000;">str</span>.<span style="color: black;">rstrip</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__flags__                     <span style="color: #008000;">str</span>.__reduce__<span style="color: black;">&#40;</span>                   <span style="color: #008000;">str</span>.<span style="color: black;">format</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__format__<span style="color: black;">&#40;</span>                   <span style="color: #008000;">str</span>.__reduce_ex__<span style="color: black;">&#40;</span>                <span style="color: #008000;">str</span>.<span style="color: black;">index</span><span style="color: black;">&#40;</span>                        <span style="color: #008000;">str</span>.<span style="color: black;">splitlines</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__ge__</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__repr__</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.<span style="color: black;">isalnum</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">startswith</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__getattribute__</span><span style="color: black;">&#40;</span>             <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__rmod__</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.<span style="color: black;">isalpha</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">strip</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__getitem__</span><span style="color: black;">&#40;</span>                  <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__rmul__</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.<span style="color: black;">isdigit</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">swapcase</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__getnewargs__<span style="color: black;">&#40;</span>               <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__setattr__</span><span style="color: black;">&#40;</span>                  <span style="color: #008000;">str</span>.<span style="color: black;">islower</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">title</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__getslice__</span><span style="color: black;">&#40;</span>                 <span style="color: #008000;">str</span>.__sizeof__<span style="color: black;">&#40;</span>                   <span style="color: #008000;">str</span>.<span style="color: black;">isspace</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__gt__</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__str__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">istitle</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">upper</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__hash__</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.__subclasscheck__<span style="color: black;">&#40;</span>            <span style="color: #008000;">str</span>.<span style="color: black;">isupper</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">zfill</span><span style="color: black;">&#40;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #008000;">str</span>.</pre></div></div>

<p>Muito bom não é?! Mas antes de dá esse post como finalizado acho importante falar um pouco sobre os módulos que usamos para que isso ocorresse:</p>
<ul>
<li><em>readline</em>: Este módulo permite a edição de linha de comando usando o GNU readline. O módulo readline define algumas funções para facilitar a leitura e escrita de arquivos de histórico do interpretador Python. Este módulo pode ser usado diretamente ou através do módulo rlcompleter, como fizemos aqui. Deste módulo fizemos uso de uma de suas funções a <em>parse_and_bind(string)</em> que, analisar e executar uma única linha de um arquivo.</li>
<li><em>rlcompleter</em>:  Este módulo define uma função de conclusão adequada para o módulo <em>readline</em> completando identificadores válidos Python e palavras-chave.</li>
</ul>
<p>Agora porque o nome da variável adicionada no <em>.bashrc</em> foi <em>PYTHONSTARTUP</em> e não qualquer outra? Esta é uma variável de ambiente que influencia no comportamento da linguagem onde, o arquivo nela declarado é executado no mesmo espaço interactivo, onde os comandos são executados durante a sessão interativa (no caso o interpretador Python).</p>
<p>Você pode obter mais informações sobre esse e outros módulos e funções <a title="Python Documentation" href="http://docs.python.org/index.html" target="_blank">aqui</a>. <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 397px; width: 1px; height: 1px;"><span style="font-size: small;"><span style="color: #000000;">este módulo permite a edição de linha de comando usando o GNU readline.</span></span></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2009/09/15/auto-completar-no-interpretador-python/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Variáveis Internas do AWK</title>
		<link>http://blog.krix.com.br/2008/11/13/variaveis-internas-do-awk/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=variaveis-internas-do-awk</link>
		<comments>http://blog.krix.com.br/2008/11/13/variaveis-internas-do-awk/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 16:08:41 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=453</guid>
		<description><![CDATA[Por esses dias uma pessoa me perguntou se haveia a possibilidade do AWK retornar a quantidade total de campos da linha que escolhi. Sinceramente eu não sabia se existia alguma variável que já retornasse esse valor, ou se era necessário fazer uma &#8220;gambiarra&#8221; para ter esse resultado. Enquando dava uma olhadinha no man do AWK [...]]]></description>
			<content:encoded><![CDATA[<p>Por esses dias uma pessoa me perguntou se haveia a possibilidade do AWK retornar a quantidade total de campos da linha que escolhi. Sinceramente eu não sabia se existia alguma variável que já retornasse esse valor, ou se era necessário fazer uma &#8220;gambiarra&#8221; para ter esse resultado.</p>
<p>Enquando dava uma olhadinha no <em>man</em> do AWK olha quem eu acho:</p>
<blockquote><p><span style="color: #800080;">7. Builtin-variables<br />
The  following  variables  are  built-in and initialized before program execution.<br />
</span></p>
<p><span style="color: #800080;">&#8230;.<br />
</span></p>
<p><span style="color: #800080;">NF        number of fields in the current record.</span></p></blockquote>
<p>Voalá!!!! Estava lá como imaginei que poderia ser, uma variável interna que já faz o &#8220;trabalho sujo&#8221;. <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Contudo aproveitando o gancho não custa nada falar de algumas outras variáveis internas:</p>
<p>FS             = separador de campos da entrada;<br />
OFS          = separador dos campos de saída;<br />
ORS          = separador de registros de saída;<br />
ARGC        = Número de argumentos da linha de comando;<br />
ARGV        = Array de argumentos da linha de comando;<br />
ENVIRON  = Array contendo todas as variáveis do ambiente;<br />
ERRNO      = Número do erro ocorrido na última chamada ao sistema;<br />
NR            = Número do registro corrente;<br />
FILENAME = Nome do arquivo corrente de entrada.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2008/11/13/variaveis-internas-do-awk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
