1

我有个问题。我需要在 txt 文件中添加一个文本行。这是我的文件:

  • 000
  • 001 测试1
  • 002 测试2
  • 003 测试3
  • 004
  • 005测试4
  • 006测试5
  • 007测试6

我需要使用 bash 脚本在第 000 行和第 004 行添加文本。

我能怎么做?谢谢大家!

4

4 回答 4

1

您可以使用“sed”工具来实现您的目标。它对于操作文件非常强大。您可以使用如下命令:

sed -i /your/file.txt -e "s/000/000'\n'YOUR_NEW_LINE/"
sed -i /your/file.txt -e "s/004/004'\n'YOUR_NEW_LINE/"

(如果我理解正确,文件第一行开头有“000”,第五行开头有“004”)

于 2012-11-01T13:34:29.603 回答
1

这就是sedanded实用程序的用途。它们使用相同的命令集,但有一些细微差别。主要区别在于ed编辑文件并在标准输入上sed接受命令,而在命令行上接受命令并将标准输入编辑到标准输出。

使用sed通常更方便,除非您遇到由于流式传输而无法执行的操作,例如移动文本。

于 2012-11-01T13:27:45.327 回答
0
awk 'NR==1{print $0, "Foo"}NR==5{print $0, "Bar"}'
于 2012-11-01T13:33:40.657 回答
0

这可以通过 while/read 循环在本机 bash 中完成:

while read num cmt; do
  if [[ -z cmt ]] ; then
    printf '%s test%s\n' "$num" "$num"
  else
    echo "$num $num"
  fi
done <infile.txt >outfile.txt
于 2012-11-01T13:28:52.870 回答