【发布时间】:2021-01-22 00:48:09
【问题描述】:
我试图在除最后一行之外的文本文件的每一行末尾添加&& \。
示例输入:
ps
mkdir repo
cd repo/
touch file1.txt
预期输出:
ps && \
mkdir repo && \
cd repo/ && \
touch file1.txt
第一次尝试
我试过这个,但它在每一行输出&& \包括最后一行:
awk '{print $0"&& \\"}' RS="\r*\n\r*"
第二次尝试
我尝试使用 sed:
sed '1s/^//;$!s/$/"&&" \\/;$s/$//'
这似乎添加了额外的换行符:
ps
&& \
mkdir repo
&& \
cd repo/
&& \
touch file1.txt
【问题讨论】:
-
欢迎来到 SO,很高兴您以代码的形式向我们展示了您的努力。请在您的问题中添加输入和预期输出的样本,然后让我们进入
-
&&后面不需要反斜杠。但听起来你想发现bash -e来运行脚本。 -
您想修改文件本身吗?
-
如果文件是一个shell脚本,你不需要
\紧跟在&&之后的行尾。此外,您可以尝试不同的方法(如果它是完整的脚本) - 将 shell 的-e标志设置为在第一个失败的命令后退出。您可以通过使用sh -e执行此操作,或者您可以在脚本开头添加set -e。