即使我已经检查了相关问题,但我找不到任何解决方案。我认为我的问题非常简单,但我无法解决它缺乏知识的问题。
$statistics dscf parallel
$2e-ints_shell_statistics file=DSCF-par-stat
$parallel_parameters
maxtask=4000
maxdisk=0
dynamic_fraction=0.300000
$pardft
memdiv=1
我希望在看到" unix"之后将这些多行添加到文本文件中。字。所以我的代码是这样的。
sed -i "/unix/a \\
$statistics dscf parallel \\
$2e-ints_shell_statistics file=DSCF-par-stat \\
$parallel_parameters \\
maxtask=4000 \\
maxdisk=0 \\
dynamic_fraction=0.300000 \\
$pardft \\
memdiv=1 \\
" control
control是我的输出文件。 因为$符号输出缺少这个插入的某些部分,看起来像这样。
$operating system unix
dscf parallel
e-ints_shell_statistics file=DSCF-par-stat
maxtask=4000
maxdisk=0
dynamic_fraction=0.300000
memdiv=1
我有点困惑。我对任何建议持开放态度。它不一定与" sed"命令。
p.s:这是我的第一个问题。 :)
答案 0 :(得分:1)
使用awk
awk '1;/unix/{print "$statistics dscf parallel\n\
$2e-ints_shell_statistics file=DSCF-par-stat\n\
$parallel_parameters\n\
maxtask=4000\n\
maxdisk=0\n\
dynamic_fraction=0.300000\n\
$pardft\n\
memdiv=1"}' file
答案 1 :(得分:1)
- (IBAction)loadButton:(id)sender {
NSOpenPanel *panel = [NSOpenPanel openPanel];
if ([panel runModal] == NSFileHandlingPanelOKButton) {
NSURL *bookUrl = [panel URL];
NSString *contents = [NSString stringWithContentsOfURL: bookUrl encoding: NSASCIIStringEncoding error: NULL];
NSArray *loadedBook = [contents componentsSeparatedByString:@"#NP#"];
self.textView.value = loadedBook[0];
}
}
在sed操作周围使用简单引号,在行尾添加一个简单的sed -i '/unix/ a\
$statistics dscf parallel\
$2e-ints_shell_statistics file=DSCF-par-stat\
$parallel_parameters\
maxtask=4000\
maxdisk=0\
dynamic_fraction=0.300000\
$pardft\
memdiv=1\
' control
来附加
答案 2 :(得分:-1)
这可能适合你(GNU sed,cat& bash):
cat <<\! | sed -i '/unix/r /dev/stdin' file
$statistics dscf parallel
$2e-ints_shell_statistics file=DSCF-par-stat
$parallel_parameters
maxtask=4000
maxdisk=0
dynamic_fraction=0.300000
$pardft
memdiv=1
!