2014-10-29 121 views
1

我有一個文本列來保留一些降價。直接從命令行編輯文本

我寧可不建立一個web界面來編輯這一欄的條目。

有沒有辦法從命令行啓動文本編輯器進行編輯?

或者也許有一種方法可以輕鬆地將純文本文件轉儲到特定行的此列中嗎?

將是很好能夠火起來VIM和編輯,而不建立一個接口的開銷一些基本的文本(不覺得需要?)

+0

什麼命令行?我不認爲鐵軌有一個命令行。 – jjanes 2014-10-29 16:05:32

+0

我發現精英主義。關於Rails沒有提及任何內容。我的問題是公平的。 Bash shell命令行或者任何shell。 – Dolbery 2014-10-29 22:31:02

+0

我太精英了,我讀了你的標籤。這是'rails-postgresql'。 – jjanes 2014-10-30 15:35:25

回答

0

運行\e應啓動默認的文本編輯器。

+0

您可以給出一個選擇行並在文本編輯器中爲該行編輯特定列的示例嗎? – Dolbery 2014-10-29 10:20:29

0

你可以做這樣的事情示例Perl代碼:

use strict; 
use warnings; 
use File::Slurp; 
use File::Temp; 
require DBI; 
$|=1; 

my $dbh=DBI->connect('dbi:Pg:'); $dbh->{RaiseError}=1; 

my ($val)=$dbh->selectrow_array('select foo from bar where id=?', undef, $ARGV[0]) 
    or die "No row for $ARGV[0]"; 
my ($fh, $filename) = File::Temp::tempfile(); 
binmode $fh; 
print $fh $val; 
close $fh or die $!; 
system "vi $filename" and die $?; 
$val=read_file($filename); 

$dbh->do('update bar set foo = $2 where id=$1',undef,$ARGV[0],$val) 
    or die "Row not updated";