如何在 Unix 中打印并在文件开头插入变量?

如何在 Unix 中打印并在文件开头插入变量?
Length=$(cat Final.txt|wc -l)
echo $Length
sed -i '1 i\<records>$(echo $Length)</records>' Final.txt

我需要添加行 XXX,其中 XXX 应该是代表行数的变量。我已经尝试了上面的代码和其他组合。它们似乎都不起作用。

答案1

Length=$(wc -l < Final.txt)
echo $Length
sed -i "1 i\<records>$Length</records>" Final.txt

答案2

sed -i "1 i\<records>$(wc -l Final.txt < Final.txt)</records>" Final.txt
  1. 您不需要中间变量。

  2. 编辑:每个用户 kamaraj 和每个用户 DonChrissti 的评论,删除了您需要命令cut或其他方式来解析输出的文件名wc以及行数的声明。一个简单的 I/O 重定向将其隐藏起来wc,因此在不知道正在处理什么文件的情况下,它没有任何可打印的内容。

相关内容