将单个文本与多行文件合并

Riz*_*n.A 5 command-line text-processing

我正在尝试将工作tvg-name与文件的多行结合起来

tr '\n' '~' < file1.txt | sed s/~/tvg-name/g
Run Code Online (Sandbox Code Playgroud)

仅导致第一个单行打印

tvg-namegama1
Run Code Online (Sandbox Code Playgroud)

我的 file1.txt 有超过 50 行,例如

gama1
beta2
tera3
Run Code Online (Sandbox Code Playgroud)

等等50多行

所需输出

tvg-name="gama1"
tvg-name="beta2"
Run Code Online (Sandbox Code Playgroud)

依此类推,直到文件结束。

Raf*_*ffa 7

您可以sed单独使用,如下所示:

sed 's/.*/tvg-name="&"/' file1.txt
Run Code Online (Sandbox Code Playgroud)

这将添加到文件中的每一行的前面tvg-name="和后面。"

这也可以用 来完成awk,如下所示:

awk '{printf "tvg-name=\"%s\"\n", $0}' file1.txt
Run Code Online (Sandbox Code Playgroud)

或者使用 pure bash,如下所示:

while IFS= read -r l; do printf 'tvg-name="%s"\n' "$l"; done < file1.txt
Run Code Online (Sandbox Code Playgroud)

  • @Raffa 我认为输入文件更有可能具有 CRLF 行结尾 (2认同)