我有一个名为 index.out 的文件
下面的内容在 index.out 文件中:
informix abc_aseld_idx1
informix abc_aseld_idx2
informix abc_aseld_idx3
informix abc_aseld_idx4
informix abc_aseld_idx5
我想创建一个 for 循环,可以一次拉出每一行,保持格式。我正在使用以下 for 循环命令:
for i in `
cat indexes.out`
do
echo "$i"
done
输出为:
informix
abc_aseld_idx1
informix
abc_aseld_idx2
informix
abc_aseld_idx3
informix
abc_aseld_idx4
informix
abc_aseld_idx5
informix
我想看到与文件相同的输出,因为我想在稍后使用 awk $1 和 $2 处理循环中的两列:
informix abc_aseld_idx1
informix abc_aseld_idx2
informix abc_aseld_idx3
informix abc_aseld_idx4
informix abc_aseld_idx5
一旦进入循环,我想使用每一行单独过滤特定的列。
默认情况下,
for
-loop 循环遍历单词,而不是行!通常,不需要循环,您只需使用
awk
它就是这样做的,循环文件行:如果你想继续处理 shell 中的数据,你可以使用
while
循环和read
:对于其他用途,您应该参考这个相关问题。
我找到了一个对我有用的解决方法:
不要在文件中使用空格,而是使用分隔符管道 (|),如下所示:
一旦进入循环,您可以用间距替换管道,如下所示:
输出是: