我試圖找出一種從文件中提取資料並以正確的格式輸出的工作方法。
假設我有一個名為 data.txt 的文件,它看起來如下:
abc 123
def 456
然後我想使用腳本來解析數據並將其呈現如下:
first abc second 123
third def fourth 456
到目前為止我已經創建了這個:
#!/bin/sh
#
for i in data.txt; do while read -r a b; do
echo "First $a second $b"
echo "third $a fourth $b"
done < data.txt
done
輸出如下圖所示:
First abc second 123
third abc fourth 123
First def second 456
third def fourth 456
因此,它不是讀取每一行並應用一次並移至 data.txt 中的下一行,而是不斷將相同的資料應用於下一個 echo 命令,然後移至下一行。我知道我可能忽略了一些簡單的事情,但這真是漫長的一天。 :)
答案1
您可以在一個循環中執行兩次讀取
#!/bin/sh
while read -r a b && read -r c d; do
echo "First $a second $b"
echo "third $c fourth $d"
done < data.txt
根據您的實際應用程序,您可能還想查看xargs
ex.
xargs -L2 /bin/printf 'First %s second %s\nthird %s fourth %s\n' < data.txt