使用另一個文件中的文字作為命令

使用另一個文件中的文字作為命令

我試圖找出一種從文件中提取資料並以正確的格式輸出的工作方法。

假設我有一個名為 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

根據您的實際應用程序,您可能還想查看xargsex.

xargs -L2 /bin/printf 'First %s second %s\nthird %s fourth %s\n' < data.txt

相關內容