Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用bash脚本在txt文件中添加文本_Bash - Fatal编程技术网

如何使用bash脚本在txt文件中添加文本

如何使用bash脚本在txt文件中添加文本,bash,Bash,我有个问题。我需要在txt文件中添加一行文本。这是我的档案: 000 001测试1 002测试2 003测试3 004 005测试4 006测试5 007测试6 我需要用bash脚本在第000行和第004行中添加文本 我该怎么办? 谢谢大家 这就是和实用程序的用途。它们使用相同的命令集,但有一些细微的区别。主要区别在于ed编辑文件并在标准输入上接受命令,而sed在命令行上接受命令并将标准输入编辑为标准输出 使用sed通常更方便,除非您遇到一些由于其流性质(如移动文本)而无法执行的操作。这可以

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

  • 000
  • 001测试1
  • 002测试2
  • 003测试3
  • 004
  • 005测试4
  • 006测试5
  • 007测试6
我需要用bash脚本在第000行和第004行中添加文本

我该怎么办? 谢谢大家

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


使用
sed
通常更方便,除非您遇到一些由于其流性质(如移动文本)而无法执行的操作。

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

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
读取num cmt时
;做
如果[-z cmt]];然后
printf“%s”测试%s\n“$num”“$num”
其他的
回显“$num$num”
fi
完成outfile.txt
您可以使用“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”)

文件中实际有数字吗?好的,非常感谢您的工作。但我有个问题,我需要在First Black line中插入新线。我该怎么办?非常感谢gedit发布了行号,但文件中没有行号
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/"