中国有兼职网站开发网站吗,江苏城乡住房建设厅网站,小程序商店,报告总结网站建设实验实现一个Linux脚本#xff0c;该脚本使用 for 循环遍历当前目录下的所有 .c 文件。 对于每个 .c 文件#xff0c;使用 grep 命令来查找是否包含字符串 “main”。 如果该 .c 文件包含 “main”#xff0c;则输出到/home/majn/llvm_project/extract_main目录下。
#!/bin/bas…实现一个Linux脚本该脚本使用 for 循环遍历当前目录下的所有 .c 文件。 对于每个 .c 文件使用 grep 命令来查找是否包含字符串 “main”。 如果该 .c 文件包含 “main”则输出到/home/majn/llvm_project/extract_main目录下。
#!/bin/bash# 目标目录
TARGET_DIR/home/majn/llvm_project/extract_main# 创建目标目录如果不存在的话
mkdir -p $TARGET_DIR# 遍历当前目录下的所有 .c 文件
for file in *.c; do# 使用 grep 命令查找是否包含字符串 mainif grep -q main $file; then# 如果找到将该 .c 文件复制到目标目录下cp $file $TARGET_DIR/echo Copied $file to $TARGET_DIRelseecho $file does not contain mainfi
done这里做了以下几件事
使用 mkdir -p 创建目标目录如果不存在。使用 for 循环遍历当前目录下的所有 .c 文件。使用 grep -q 查找每个文件中是否包含字符串 main。如果包含使用 cp 命令将文件复制到目标目录。
保存这个脚本给它可执行权限然后运行它
chmod x your_script.sh
./your_script.sh注意请确保你有写入 /home/majn/llvm_project/extract_main 目录的权限并且在运行脚本之前要小心以确保不会覆盖重要文件。如果需要先在一个测试目录中运行这个脚本。
上述脚本执行报错!!!
./main.sh
-bash: ./main.sh: /bin/bash^M: bad interpreter: No such file or directory这个错误通常是因为脚本文件中含有 Windows 风格的换行符\r\n而 Linux 期望的是 UNIX 风格的换行符\n。当你在 Windows 系统中创建或编辑文本文件并将其转移到 Linux 系统时这种情况可能会发生。
你可以使用 dos2unix 工具来转换文件的换行符。首先你需要安装 dos2unix
sudo apt update
sudo apt install dos2unix # 在基于 Debian 的系统中或者
yum install dos2unix # 在基于 RedHat 的系统中然后你可以运行下面的命令来转换脚本文件
dos2unix main.sh这会把 main.sh 中的所有 Windows 风格的换行符转换为 UNIX 风格的换行符。
然后你应该能够正常运行脚本
chmod x main.sh
./main.sh如果你没有 dos2unix 工具也可以使用 sed 来进行转换
sed -i s/\r$// main.sh这行 sed 命令会查找并移除文件中所有行尾的 \r 字符。之后你应该能够正常执行该脚本。