gpt4 book ai didi

linux - bash for循环获取文件内容写入另一个文本文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:08:18 25 4
gpt4 key购买 nike

我正在尝试获取该文件写入另一个文本文件的文件内容

我的程序是:

for i in $(cat FILE)
do
echo $i
done

希望是这样的结果

OBJECT1
OBJECT2
LINE1
LINE2

但结果只是

aa
bb

程序没有读取aabb

的内容

文件名和内容如下:

文件:

aa
bb

AA:

OBJECT1
OBJECT2

bb:

LINE1
LINE2

最佳答案

这就是我认为您正在尝试做的事情。

给定:

$ cat FILE
aa
bb
$ cat aa
OBJECT1
OBJECT2
$ cat bb
LINE1
LINE2

你可以这样做:

$ while IFS= read -r fn || [[ -n $fn ]]; do cat "$fn"; done <FILE
OBJECT1
OBJECT2
LINE1
LINE2

解释:

  1. <FILE阅读文件 FILE并将内容重定向到 while 循环
  2. while IFS= read -r fn; do ... done定义一个 while loop .将由 CR 终止的每一行的文件读入 fn . IFS= prevents the trimming前导和尾随空格。 -r选项防止反斜杠解释。
  3. || [[ -n $fn ]]如果文件的最后一行 FILE 返回 true 让循环继续未以 \n 终止.如果您知道您的文件有那个终止符,您就不需要这部分。
  4. cat "$fn"运行程序 cat带引号的文件名“$fn”。如果有"big file.txt"之类的名字需要加引号保持文件名完整

关于linux - bash for循环获取文件内容写入另一个文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42179027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com