通过bash脚本写入文件

时间:2010-10-08 08:46:06

标签: bash scripting

我想编写一个带有2个参数的bash脚本,ab。根据参数,它在文本文件的a部分或部分b中写入。

输出文件是一个类似这样的txt文件:

common content....
section a:
<everything should be written here when I specify option "a">
section b:
<everything should be written here when I specify option "b">

我是bash的新手。

2 个答案:

答案 0 :(得分:1)

#!/bin/bash


if [ "$#" -eq 2 ];then
 secA="$1"
 secB="$2"
elif [ "$#" -eq 1 ];then
 secA="$1"
fi

awk -v s1="$secA" -v s2="$secB" '
/section a/ && s1{
  $0=$0"\n"s1
  while(getline line){
   if (line~/section b/) { $0=$0"\n"line;break}
  }
}
/section b/ && s2{ $0=$0"\n"s2}
1' file

答案 1 :(得分:0)

以下脚本将文件的修改内容(文件名存储在file变量中)写入标准输出。

新部分内容取自标准输入。

#!/bin/bash
file=text.txt

# write the file contents up to desired section (or the whole file)
sed -n '1,/^section '"$1"':$/p' "$file"

# write standard input
cat

# write the rest of the file
sed -n '/^section '"$1"':$/,${n;p}' "$file"