ただし、sed操作を並列化しようとすると、並列バージョンが機能しても無効な出力が返されます。
私は並列化されたsed操作が欲しい(動作します)
sed 's/\s.*$// ; s/\(.*\)/\L\1/' < oldfile.txt > newfile.txt
上記のsed操作の並列バージョン(何らかの理由で機能しません):
parallel -a oldfile.txt -k --block $BYTES --pipe-part "sed 's/\s.*$// ; s/\(.*\)/\L\1/'" > newfile.txt
ベストアンサー1
これは通常二重引用符が原因で発生します。
引用符は迷惑なので、シェル関数を試してみてください。
mysed() {
sed 's/\s.*$// ; s/\(.*\)/\L\1/'
}
export -f mysed
parallel -a oldfile.txt -k --block -1 --pipe-part mysed > newfile.txt