Ksh
讀取儲存在變數 Ksh Unix 中的文件
我很難讀取儲存在變數中的文件。它應該很簡單,但不知何故我錯過了一些東西,找不到什麼?
count=0 mip="$(<fila.txt)" while read -r line do count=`expr $count + 1` echo "line $count " done < $mip
這是一個非常基本且簡單的腳本,可以像這樣計算行數,但是當我使用變數done < $mip而不是文件名done <fila.txt 時。該腳本只輸出文件內容,如cat fila.txt,而不是計算行數。
line 1 line 2 line 3 line 4 line 5 line 6
有任何想法嗎 ??
done <$mip
仍然假設這$mip
是一個文件名。它不是。你想要的可能是這樣的
printf '%s\n' "$mip" | while IFS= read -r line; do printf 'line %d\n' "$(( ++count ))" done
更直接的解決方案是
while IFS= read -r line; do printf 'line %d\n' "$(( ++count ))" done <filea.txt
甚至
cat -n filea.txt | sed 's/^ *\([0-9]*\).*$/line \1/'
最後一個命令將
cat
用於列舉文件中的行並sed
刪除實際的文件內容。或者,使用
awk
,更直接:awk '{ printf("line %d\n", NR) }' filea.txt
或者,如果您先計算文件中的行數:
count=$( sed -n '$=' filea.txt ) # or: count=$( wc -l <filea.txt ) printf 'line %d\n' {1..$count}