我有以下命令
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 会读取您告诉它的文件:
printf "%s\n" "awk '!/ NY /' PHONEBOOK.lst | sort -k1 | sort -k4 | tee PHONENOTNY.LST" >> NOTNY.sh && chmod 0777 NOTNY.sh
或者,因为第二个sort
只会覆盖第一个:
printf "%s\n" "awk '!/ NY /' PHONEBOOK.lst | sort -k4 | tee PHONENOTNY.LST" >> NOTNY.sh && chmod 0777 NOTNY.sh