首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cat:无效选项-a

cat:无效选项-a
EN

Stack Overflow用户
提问于 2015-02-05 11:21:48
回答 2查看 6.5K关注 0票数 1

我在"Abb/test“文件夹中有一些c文件和common.txt,在"Abb”文件夹中有temp.txt,我想在所有c文件的头中复制common.txt的内容。我使用以下unix shell脚本代码:-

代码语言:javascript
复制
for i in 'find test -name *.c'; do cat test/common.txt $i > temp.txt && mv temp.txt $i; done

但它给出了错误"cat:无效选项-- a“

有人能帮帮我吗。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-05 11:37:17

您的代码中有几个严重问题。

您的代码具有新行以提高可读性:

代码语言:javascript
复制
for i in 'find test -name *.c'
do
  cat test/common.txt $i > temp.txt && mv temp.txt $i
done

问题: shell替换的引号错误。

代码语言:javascript
复制
for i in `find test -name '*.c'`
do
  cat test/common.txt $i > temp.txt && mv temp.txt $i
done

问题:不引用$i

代码语言:javascript
复制
for i in `find test -name '*.c'`
do
  cat test/common.txt "$i" > temp.txt && mv temp.txt "$i"
done

问题:使用for循环对文件名进行循环。

代码语言:javascript
复制
find test -name '*.c' | while read -r filename
do
  cat test/common.txt "$filename" > temp.txt && mv temp.txt "$filename"
done
票数 3
EN

Stack Overflow用户

发布于 2017-04-21 01:18:26

在执行自定义上传的shell脚本时,尝试使用cp命令时也出现了类似的错误,经过大量时间的搜索,我最终发现我的脚本文件中有unix format,并将它们转换为unix format,解决了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28342632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档