Pao*_*olo 3 bash append line echo
在我的Bash脚本中,我将行写入文本文件.
echo "string" > /folder/file.txt
Run Code Online (Sandbox Code Playgroud)
上面的示例创建一个新文件并将该字符串写入该文件.
echo "string" >> /folder/file.txt
Run Code Online (Sandbox Code Playgroud)
第二个示例附加到文件,将字符串写入新行.
我的问题是......是否有一个命令删除最后一行?如果没有,我想我必须逐行复制到一个临时文件中,在我要删除的最后一行之前停止,然后用新文件覆盖旧文件(现在没有最后一行) .如果这是唯一的解决方案,有没有办法找出文本文件中有多少行?所以我可以在"n - 1"处停止循环.
{ echo 1; echo 2 ; echo 3 ; } | sed '$d'
Run Code Online (Sandbox Code Playgroud)
产量
1
2
Run Code Online (Sandbox Code Playgroud)
或者带有文件
sed '$d' file > file.tmp && mv file.tmp file
Run Code Online (Sandbox Code Playgroud)
或者与较新的seds
sed -i '$d' file
Run Code Online (Sandbox Code Playgroud)
所述$炭被作为一系列地址值意思是"最后行式文件".您还会看到$在正常表达式中使用过'/ at Line $ /'(注意'/.../'的reg-exp分隔符对).在reg表达式中使用时,$现在意味着'行尾'
如果您真的想知道文件中有多少行(并将其分配给变量),请执行此操作
lineCount=$(/bin/wc -l <file)
echo $lineCount
Run Code Online (Sandbox Code Playgroud)
IHTH