我想在每个.tsv文件中插入自定义标头,解析每个文件的内容并附加到最终的变体文件。我试图在一个循环中实现这一点,但它不起作用,所以我尝试了两个单独的循环。第一个循环将标头插入每个.tsv文件中,但是,第二个循环用空行替换插入的标头。有人可以解释为什么会发生这种情况以及如何解决这个问题?感谢
FATAL EXCEPTION: main
Process: com.lumberjackapps.dailyhero, PID: 2395
java.lang.Error: ErrorCopyingDataBase
at com.lumberjackapps.dailyhero.DataBaseHelper.createDataBase(DataBaseHelper.java:57)
at com.lumberjackapps.dailyhero.TestAdapter.createDatabase(TestAdapter.java:34)
at com.lumberjackapps.dailyhero.CharacterInfo$1.onClick(CharacterInfo.java:46)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
E/EGL_emulation: tid 955: eglCreateSyncKHR(1294): error 0x3004 (EGL_BAD_ATTRIBUTE)
E/SurfaceFlinger: ro.sf.lcd_density must be defined as a build property
E/Surface: getSlotFromBufferLocked: unknown buffer: 0xa15d3f80
E/audio_hw_generic: Error opening input stream format 1, channel_mask 0010, sample_rate 16000
答案 0 :(得分:1)
试试这个:
use strict;
use warnings;
use Tie::File;
my $tsv_file = 'test.txt';
tie my @textFile, 'Tie::File', $tsv_file, recsep => "\n" or die $!;
for my $line (@textFile) {
$line = "New Sample\n" if($line =~ /FORMAT\.1\.FSRF/);
}
untie @textFile;
答案 1 :(得分:0)
在Perl中,您可以用BBB替换AAA
$string =~ s/AAA/BBB/;
所以如果你想:
#replace lines containing "FORMAT.1.FSRF" with "New Sample"
然后尝试:
$string =~ s/FORMAT\.1\.FSRF/New Sample/g;
如果您只想为每一行进行一次替换,请删除最后一个g
。