
#!/bin/sh/sed -nf
printf "Enter a string:-\n"
read -r string
printf "Entered string is:-\n"
echo "$string"
echo -e "${string}" |sed -nr '$!N;/^(.*)\n\1$/!P;D'
私はbashスクリプト初心者で、ユーザーが入力した文字列から重複を削除しようとしています。問題は、何も削除されないことです。以下は出力です。
roschlynn@Asus-X512FL:~/Desktop/Shell$ bash pipelinecmd.sh
Printing the string:-
1\n2\n2\n3\n3\n3\n4\n4\n4\n4\n5
1
2
3
4
5
Enter a string:-
king\quenn\king\jck
Entered string is:-
king\quenn\king\jck
king\quenn\king\jck
roschlynn@Asus-X512FL:~/Desktop/Shell$ ^C
roschlynn@Asus-X512FL:~/Desktop/Shell$
最初の文字列はすでに定義されているため、完全に機能しています。ただし、ユーザーからの入力を取得して sed 関数に渡そうとすると問題が発生します。変数が渡されていないのではないかと思いますが、その問題はどのように解決すればよいでしょうか?