小编Ale*_*ler的帖子

使用 find 和 sed 递归地在文件中添加包含 {} 的行

我想递归地添加以.ts以下文本结尾的所有文件:export {};并且我需要至少排除文件夹node_modules.

我试过:

find . f ! -path '*/node_modules/*' -iname "*.ts" -exec sed -e '1 i\export {}' \;
Run Code Online (Sandbox Code Playgroud)

结果:对于每个文件我得到:sed: 1: "1 i\export ./src/query/ ...": extra characters after \ at the end of i command

更新:我gnu-sed在 macOS 上安装并尝试使用gsed。但它似乎不起作用——它似乎无限运行。

sed find files

3
推荐指数
1
解决办法
447
查看次数

比较退出代码:预期的一元运算符

我在一个.txt文件中有一个 git 提交列表,我想遍历这些提交。对于每个COMMIT_ID我想使用git退出代码为0or的命令检查它们1

根据我想要的结果echo truefalse.

但是在运行脚本时,我收到此错误:

line 5: [: 0: unary operator expected
Run Code Online (Sandbox Code Playgroud)

脚本如下:

#!/usr/bin/env bash
input="./commits.txt"
while IFS= read -r COMMIT_ID
do
  if [ 0 -eq $(git merge-base --is-ancestor $COMMIT_ID HEAD) ]; 
    then 
      echo "true"; 
    else 
      echo "false"; 
    fi
done < "$input"
Run Code Online (Sandbox Code Playgroud)

bash git shell-script test exit-status

3
推荐指数
1
解决办法
293
查看次数

标签 统计

bash ×1

exit-status ×1

files ×1

find ×1

git ×1

sed ×1

shell-script ×1

test ×1