我正在修改此脚本以将一个文件的内容插入到另一个文件中。这就是我现在所拥有的:
#!/bin/sh
# Check if first and second parameters exist
if [ ! -z "$2" ]; then
STRING=$(cat $1)
# Check if the supplied file exist
if [ -e $2 ]; then
sed -i -e "2i$STRING" $2
echo "The string \"$STRING\" has been successfully inserted."
else
echo "The file does not exist."
fi
else
echo "Error: both parameters must be given."
fi
Run Code Online (Sandbox Code Playgroud)
我运行它: ./prepend.sh content.txt example.txt
该content.txt文件:
first_line
second_line
Run Code Online (Sandbox Code Playgroud)
该example.txt文件:
REAL_FIRST_LINE
REAL_SECOND_LINE
Run Code Online (Sandbox Code Playgroud)
脚本的输出:
sed: -e expression #1, char 24: unterminated `s' command
The string "first_line
second_line" has been successfully inserted.
Run Code Online (Sandbox Code Playgroud)
并且example.txt文件的内容保持不变,当我希望它是这样的:
REAL_FIRST_LINE
first_line
second_line
REAL_SECOND_LINE
Run Code Online (Sandbox Code Playgroud)
这听起来像你想的r命令:
sed "1r $1" "$2"
Run Code Online (Sandbox Code Playgroud)
你也许可以用 GNU sed 做到这一点:
cat "$1" | sed '2r /dev/stdin' "$2"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
332 次 |
| 最近记录: |