我有一个逐行读取文件的脚本。 每行有许多用白色空格分隔的列,如: 1a 1b 1c 1d 2a 2b 2c 2d 3a 3b 3c 3d
我想对每一行的第一列采取行动。 所以我有脚本:
#!/bin/sh
file_name=myfile.txt
while read line
do
ve=`cut -d " " -f1`
echo "This is $ve"
done < $file_name
但输出是:
This is 1a
2a
3a
而不是
This is 1a
This is 2a
This is 3a
答案 0 :(得分:1)
cut
的第一个实例会占用所有输入。
你可能意味着
ve=`echo "$line" | cut -d " " -f1`
我建议您也很好地引用变量:
#!/bin/sh
file_name=myfile.txt
while read line; do
ve=`echo "$line" | cut -d ' ' -f1`
echo "This is $ve"
done < "$file_name"