Fra*_*fka 2 bash shell-script code-folding
我很难做一些非常简单的事情。我有大约 2000 个 .txt 文件,它们由一行数字组成。我想使用 fold 命令将单行折叠成多行的一列,并用这个新的折叠版本覆盖原始文件。我的尝试:
#!/bin/bash
for i in *.txt ; do
fold -w 1 $file > $file
done
Run Code Online (Sandbox Code Playgroud)
不起作用。帮助?谢谢。
这里有两个问题。首先,您声明变量“i”但使用不存在的“$file”。即使是这样,第二个问题是 bash 读取“从左到右”。这意味着它将首先看到“>$file”,并将覆盖文件的内容。因此,如果您使用了正确的变量,您就会丢失数据。
因此,一个错误使您免于另一个错误,您很幸运,很幸运的人:)
尝试类似:
for i in *.txt ; do fold -w 1 $i > sillytmpfile; mv sillytmpfile $i; done
Run Code Online (Sandbox Code Playgroud)