【发布时间】:2022-02-02 01:25:57
【问题描述】:
我必须输入.txt文件,该文件需要通过shell脚本格式化,条件如下
- 删除前两行并 最后两行
- 删除每个空格中的所有空格 行(每行有两个空格 开头和结尾一个空格)
- 每一行都应该在单行之内 引号('')
- 最后将换行符($)替换为 逗号。
(原创) input.txt
sql
--------
Abce
Bca
Efr
-------
Row (3)
所需的输出文件
output.txt
'Abce','Bca','Efr'
我尝试过使用以下命令
Sed -i 1,2d input.txt > input.txt
Sed "$(( $(wc -l <input.txt) -2+1)), $ d" Input.txt > input.txt
Sed ':a;N;$!ba;s/\n/, /g' input.txt > output.txt
但我得到空白的 output.txt
【问题讨论】:
-
This old answer of mine 可以作为起点。
-
谢谢,stackoverflow 和 shell 脚本的新手
-
Sed不是有效命令。请注意提供minimal reproducible example -
避免
sed -i。sed -i input.file > input.file是....嗯,很奇怪。sed -i(如果确实有的话)的重点是“就地”修改文件而不产生任何输出。> file的重点是将输出写入文件。 (但sed -i不会产生输出!)。sed -i实际上并不直接修改文件,而是在副本上工作。但是 shell 会在sed开始之前截断文件(丢弃其中的所有数据),所以你最终什么都没有。
标签: bash shell awk sed scripting