こんにちは。使用中にいくつかの問題が発生しました。アッループによって生成された.tsvファイルの先頭に列を追加します。
私のコードは次のとおりです(残りのループは無視できます)。
while IFS= read -r line
do
curl *URL.org* > ./folder/$line.tsv
sleep 60
awk '{print "$line\t" $0}' ./folder/$line.tsv > $line.tabbed
done < ./folder/<filetoread>.txt
したがって、デフォルトでは、curlコマンドでtsvファイルを生成し、$ line変数を使用してファイルを生成するために使用するループがあります。読み取ったファイルは、単一の単語識別子のリストにすぎません。
RUIAHT48
RUIAHT49
etc.
使えると思いました。アッこの$line変数を追加して、新しく作成された各ファイルに新しい列を作成します。
awkコマンドの前に出力されます。
$line col1 col2 col3 col4 col5
$line CLV_M 19 25 False False
$line CLV_P 59 63 False False
$line DEG_N 1 3 False False
$line DOC_C 10 14 False False
希望の出力
new col1 col2 col3 col4 col5
<value> CLV_M 19 25 False False
<value> CLV_P 59 63 False False
<value> DEG_N 1 3 False False
<value> DOC_C 10 14 False False
新しい列の値はすべて同じですが、リテラル "$line"の代わりに実際の値があります。ここで私はどこで間違っていますか?実際にawkや他の簡単なコマンドを使用する必要がありますか?
ありがとうございます:)
答え1
awk
スイッチを使用するには変数を渡す必要があります-v
。
while IFS= read -r line
do
curl *URL.org* > "./folder/$file.tsv"
sleep 60
awk -v line="$line" '{ OFS = "\t"; print line,$0}' "./folder/$line.tsv" > "$line.tabbed"
done < ./folder/<filetoread>.txt
\t
OPのように出力に追加することができますが、OFS
私はawk
。
また、何をしているのかよくわかりませんが、これはどのように$file.tsv
使用されていないようですか?私の考えにはそれがありますか$line.tsv
?