次のコマンドがあります
echo “more PHONEBOOK.lst | awk '!/ NY /' | sort -k1 | sort -k4 | tee PHONENOTNY.LST” >> NOTNY.sh && chmod 0777 NOTNY.sh
ただし、コマンドを実行してNOTNY.shの内容を見ると、次のものが含まれます。
“more PHONEBOOK.lst
それを含める必要があります
more PHONEBOOK.lst | awk '!/ NY /' | sort -k1 | sort -k4 | tee PHONENOTNY.LST
得られた結果ではなく、コマンドのテキストをどのようにコピーしますか?
答え1
「スマート」引用符の代わりに一般的な「二重引用符」を使用してください。
printf "%s\n" "more PHONEBOOK.lst | awk '!/ NY /' | sort -k1 | sort -k4 | tee PHONENOTNY.LST" >> NOTNY.sh && chmod 0777 NOTNY.sh
more
または、awkが指定したファイルを読み取るため、awkへの無意味な呼び出しを保存してください。
printf "%s\n" "awk '!/ NY /' PHONEBOOK.lst | sort -k1 | sort -k4 | tee PHONENOTNY.LST" >> NOTNY.sh && chmod 0777 NOTNY.sh
または、2番目の項目がsort
最初の項目を上書きするので、次のようにします。
printf "%s\n" "awk '!/ NY /' PHONEBOOK.lst | sort -k4 | tee PHONENOTNY.LST" >> NOTNY.sh && chmod 0777 NOTNY.sh